{"version":3,"file":"backend.js","mappings":"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","sources":["webpack://ReactDevToolsBackend/webpack/universalModuleDefinition","webpack://ReactDevToolsBackend/../../build/oss-experimental/react-debug-tools/cjs/react-debug-tools.production.min.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react-debug-tools/index.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react-is/cjs/react-is.production.min.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react-is/index.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react/cjs/react.production.min.js","webpack://ReactDevToolsBackend/../../build/oss-experimental/react/index.js","webpack://ReactDevToolsBackend/../../node_modules/error-stack-parser/error-stack-parser.js","webpack://ReactDevToolsBackend/../../node_modules/lodash.throttle/index.js","webpack://ReactDevToolsBackend/../../node_modules/lru-cache/index.js","webpack://ReactDevToolsBackend/../../node_modules/process/browser.js","webpack://ReactDevToolsBackend/../../node_modules/pseudomap/map.js","webpack://ReactDevToolsBackend/../../node_modules/pseudomap/pseudomap.js","webpack://ReactDevToolsBackend/../../node_modules/stackframe/stackframe.js","webpack://ReactDevToolsBackend/../../node_modules/util/node_modules/inherits/inherits_browser.js","webpack://ReactDevToolsBackend/../../node_modules/util/support/isBufferBrowser.js","webpack://ReactDevToolsBackend/../../node_modules/util/util.js","webpack://ReactDevToolsBackend/../../node_modules/yallist/yallist.js","webpack://ReactDevToolsBackend/webpack/bootstrap","webpack://ReactDevToolsBackend/webpack/runtime/compat get default export","webpack://ReactDevToolsBackend/webpack/runtime/define property getters","webpack://ReactDevToolsBackend/webpack/runtime/hasOwnProperty shorthand","webpack://ReactDevToolsBackend/webpack/runtime/make namespace object","webpack://ReactDevToolsBackend/../react-devtools-shared/src/events.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/constants.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/storage.js","webpack://ReactDevToolsBackend/../../node_modules/memoize-one/esm/index.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/Highlighter/Overlay.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/Highlighter/Highlighter.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/Highlighter/index.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/TraceUpdates/canvas.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/views/TraceUpdates/index.js","webpack://ReactDevToolsBackend/../../src/index.ts","webpack://ReactDevToolsBackend/../shared/ReactSymbols.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/types.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/isArray.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/hydration.js","webpack://ReactDevToolsBackend/../shared/isArray.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/ReactSymbols.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/config/DevToolsFeatureFlags.core-oss.js","webpack://ReactDevToolsBackend/../shared/objectIs.js","webpack://ReactDevToolsBackend/../shared/hasOwnProperty.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/StyleX/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/devtools/constants.js","webpack://ReactDevToolsBackend/../react-devtools-timeline/src/constants.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/DevToolsConsolePatching.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/DevToolsComponentStackFrame.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/DevToolsFiberComponentStack.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/profilingHooks.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/renderer.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/console.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/bridge.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/agent.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/hook.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/legacy/utils.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/legacy/renderer.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/index.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/NativeStyleEditor/resolveBoxStyle.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor.js","webpack://ReactDevToolsBackend/./src/cachedSettings.js","webpack://ReactDevToolsBackend/./src/backend.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDevToolsBackend\"] = factory();\n\telse\n\t\troot[\"ReactDevToolsBackend\"] = factory();\n})(self, () => {\nreturn ","/**\n * @license React\n * react-debug-tools.production.min.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"error-stack-parser\"),p=require(\"react\"),q=Object.assign,w=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=[],y=null;\nfunction z(){if(null===y){var a=new Map;try{A.useContext({_currentValue:null}),A.useState(null),A.useReducer(function(c){return c},null),A.useRef(null),\"function\"===typeof A.useCacheRefresh&&A.useCacheRefresh(),A.useLayoutEffect(function(){}),A.useInsertionEffect(function(){}),A.useEffect(function(){}),A.useImperativeHandle(void 0,function(){return null}),A.useDebugValue(null),A.useCallback(function(){}),A.useMemo(function(){return null}),\"function\"===typeof A.useMemoCache&&A.useMemoCache(0)}finally{var b=\nx;x=[]}for(var e=0;eg;g++)if(n=G(m,d,g),-1!==n){F=g;d=n;break b}d=-1}}b:{m=l;n=z().get(u.primitive);if(void 0!==n)for(g=0;gd-m?null:l.slice(m,\nd-1);if(null!==l){d=0;if(null!==c){for(;dd;c--)k=t.pop()}for(c=l.length-d-1;1<=c;c--)d=[],m=l[c],(n=l[c-1].functionName)?(g=n.lastIndexOf(\".\"),-1===g&&(g=0),\"use\"===n.slice(g,g+3)&&(g+=3),n=n.slice(g)):n=\"\",n={id:null,isStateEditable:!1,name:n,value:void 0,subHooks:d},e&&(n.hookSource={lineNumber:m.lineNumber,columnNumber:m.columnNumber,functionName:m.functionName,fileName:m.fileName}),k.push(n),t.push(k),\nk=d;c=l}d=u.primitive;u={id:\"Context\"===d||\"DebugValue\"===d?null:r++,isStateEditable:\"Reducer\"===d||\"State\"===d,name:d,value:u.value,subHooks:[]};e&&(d={lineNumber:null,functionName:null,fileName:null,columnNumber:null},l&&1<=l.length&&(l=l[0],d.lineNumber=l.lineNumber,d.functionName=l.functionName,d.fileName=l.fileName,d.columnNumber=l.columnNumber),u.hookSource=d);k.push(u)}J(f,null);return f}\nfunction J(a,b){for(var e=[],f=0;f -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n // if a location was matched, pass it to extractLocation() otherwise pop the last token\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","'use strict'\n\nmodule.exports = LRUCache\n\n// This will be a proper iterable 'Map' in engines that support it,\n// or a fakey-fake PseudoMap in older versions.\nvar Map = require('pseudomap')\nvar util = require('util')\n\n// A linked list to keep track of recently-used-ness\nvar Yallist = require('yallist')\n\n// use symbols if possible, otherwise just _props\nvar hasSymbol = typeof Symbol === 'function' && process.env._nodeLRUCacheForceNoSymbol !== '1'\nvar makeSymbol\nif (hasSymbol) {\n makeSymbol = function (key) {\n return Symbol(key)\n }\n} else {\n makeSymbol = function (key) {\n return '_' + key\n }\n}\n\nvar MAX = makeSymbol('max')\nvar LENGTH = makeSymbol('length')\nvar LENGTH_CALCULATOR = makeSymbol('lengthCalculator')\nvar ALLOW_STALE = makeSymbol('allowStale')\nvar MAX_AGE = makeSymbol('maxAge')\nvar DISPOSE = makeSymbol('dispose')\nvar NO_DISPOSE_ON_SET = makeSymbol('noDisposeOnSet')\nvar LRU_LIST = makeSymbol('lruList')\nvar CACHE = makeSymbol('cache')\n\nfunction naiveLength () { return 1 }\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nfunction LRUCache (options) {\n if (!(this instanceof LRUCache)) {\n return new LRUCache(options)\n }\n\n if (typeof options === 'number') {\n options = { max: options }\n }\n\n if (!options) {\n options = {}\n }\n\n var max = this[MAX] = options.max\n // Kind of weird to have a default max of Infinity, but oh well.\n if (!max ||\n !(typeof max === 'number') ||\n max <= 0) {\n this[MAX] = Infinity\n }\n\n var lc = options.length || naiveLength\n if (typeof lc !== 'function') {\n lc = naiveLength\n }\n this[LENGTH_CALCULATOR] = lc\n\n this[ALLOW_STALE] = options.stale || false\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this.reset()\n}\n\n// resize the cache when the max changes.\nObject.defineProperty(LRUCache.prototype, 'max', {\n set: function (mL) {\n if (!mL || !(typeof mL === 'number') || mL <= 0) {\n mL = Infinity\n }\n this[MAX] = mL\n trim(this)\n },\n get: function () {\n return this[MAX]\n },\n enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'allowStale', {\n set: function (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n },\n get: function () {\n return this[ALLOW_STALE]\n },\n enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'maxAge', {\n set: function (mA) {\n if (!mA || !(typeof mA === 'number') || mA < 0) {\n mA = 0\n }\n this[MAX_AGE] = mA\n trim(this)\n },\n get: function () {\n return this[MAX_AGE]\n },\n enumerable: true\n})\n\n// resize the cache when the lengthCalculator changes.\nObject.defineProperty(LRUCache.prototype, 'lengthCalculator', {\n set: function (lC) {\n if (typeof lC !== 'function') {\n lC = naiveLength\n }\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(function (hit) {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n }, this)\n }\n trim(this)\n },\n get: function () { return this[LENGTH_CALCULATOR] },\n enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'length', {\n get: function () { return this[LENGTH] },\n enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'itemCount', {\n get: function () { return this[LRU_LIST].length },\n enumerable: true\n})\n\nLRUCache.prototype.rforEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this[LRU_LIST].tail; walker !== null;) {\n var prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n}\n\nfunction forEachStep (self, fn, node, thisp) {\n var hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE]) {\n hit = undefined\n }\n }\n if (hit) {\n fn.call(thisp, hit.value, hit.key, self)\n }\n}\n\nLRUCache.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this[LRU_LIST].head; walker !== null;) {\n var next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n}\n\nLRUCache.prototype.keys = function () {\n return this[LRU_LIST].toArray().map(function (k) {\n return k.key\n }, this)\n}\n\nLRUCache.prototype.values = function () {\n return this[LRU_LIST].toArray().map(function (k) {\n return k.value\n }, this)\n}\n\nLRUCache.prototype.reset = function () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(function (hit) {\n this[DISPOSE](hit.key, hit.value)\n }, this)\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n}\n\nLRUCache.prototype.dump = function () {\n return this[LRU_LIST].map(function (hit) {\n if (!isStale(this, hit)) {\n return {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }\n }\n }, this).toArray().filter(function (h) {\n return h\n })\n}\n\nLRUCache.prototype.dumpLru = function () {\n return this[LRU_LIST]\n}\n\n/* istanbul ignore next */\nLRUCache.prototype.inspect = function (n, opts) {\n var str = 'LRUCache {'\n var extras = false\n\n var as = this[ALLOW_STALE]\n if (as) {\n str += '\\n allowStale: true'\n extras = true\n }\n\n var max = this[MAX]\n if (max && max !== Infinity) {\n if (extras) {\n str += ','\n }\n str += '\\n max: ' + util.inspect(max, opts)\n extras = true\n }\n\n var maxAge = this[MAX_AGE]\n if (maxAge) {\n if (extras) {\n str += ','\n }\n str += '\\n maxAge: ' + util.inspect(maxAge, opts)\n extras = true\n }\n\n var lc = this[LENGTH_CALCULATOR]\n if (lc && lc !== naiveLength) {\n if (extras) {\n str += ','\n }\n str += '\\n length: ' + util.inspect(this[LENGTH], opts)\n extras = true\n }\n\n var didFirst = false\n this[LRU_LIST].forEach(function (item) {\n if (didFirst) {\n str += ',\\n '\n } else {\n if (extras) {\n str += ',\\n'\n }\n didFirst = true\n str += '\\n '\n }\n var key = util.inspect(item.key).split('\\n').join('\\n ')\n var val = { value: item.value }\n if (item.maxAge !== maxAge) {\n val.maxAge = item.maxAge\n }\n if (lc !== naiveLength) {\n val.length = item.length\n }\n if (isStale(this, item)) {\n val.stale = true\n }\n\n val = util.inspect(val, opts).split('\\n').join('\\n ')\n str += key + ' => ' + val\n })\n\n if (didFirst || extras) {\n str += '\\n'\n }\n str += '}'\n\n return str\n}\n\nLRUCache.prototype.set = function (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n var now = maxAge ? Date.now() : 0\n var len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n var node = this[CACHE].get(key)\n var item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET]) {\n this[DISPOSE](key, item.value)\n }\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n var hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE]) {\n this[DISPOSE](key, value)\n }\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n}\n\nLRUCache.prototype.has = function (key) {\n if (!this[CACHE].has(key)) return false\n var hit = this[CACHE].get(key).value\n if (isStale(this, hit)) {\n return false\n }\n return true\n}\n\nLRUCache.prototype.get = function (key) {\n return get(this, key, true)\n}\n\nLRUCache.prototype.peek = function (key) {\n return get(this, key, false)\n}\n\nLRUCache.prototype.pop = function () {\n var node = this[LRU_LIST].tail\n if (!node) return null\n del(this, node)\n return node.value\n}\n\nLRUCache.prototype.del = function (key) {\n del(this, this[CACHE].get(key))\n}\n\nLRUCache.prototype.load = function (arr) {\n // reset the cache\n this.reset()\n\n var now = Date.now()\n // A previous serialized cache has the most recent items first\n for (var l = arr.length - 1; l >= 0; l--) {\n var hit = arr[l]\n var expiresAt = hit.e || 0\n if (expiresAt === 0) {\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n } else {\n var maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n}\n\nLRUCache.prototype.prune = function () {\n var self = this\n this[CACHE].forEach(function (value, key) {\n get(self, key, false)\n })\n}\n\nfunction get (self, key, doUse) {\n var node = self[CACHE].get(key)\n if (node) {\n var hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE]) hit = undefined\n } else {\n if (doUse) {\n self[LRU_LIST].unshiftNode(node)\n }\n }\n if (hit) hit = hit.value\n }\n return hit\n}\n\nfunction isStale (self, hit) {\n if (!hit || (!hit.maxAge && !self[MAX_AGE])) {\n return false\n }\n var stale = false\n var diff = Date.now() - hit.now\n if (hit.maxAge) {\n stale = diff > hit.maxAge\n } else {\n stale = self[MAX_AGE] && (diff > self[MAX_AGE])\n }\n return stale\n}\n\nfunction trim (self) {\n if (self[LENGTH] > self[MAX]) {\n for (var walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n var prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nfunction del (self, node) {\n if (node) {\n var hit = node.value\n if (self[DISPOSE]) {\n self[DISPOSE](hit.key, hit.value)\n }\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\n// classy, since V8 prefers predictable objects.\nfunction Entry (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","if (process.env.npm_package_name === 'pseudomap' &&\n process.env.npm_lifecycle_script === 'test')\n process.env.TEST_PSEUDOMAP = 'true'\n\nif (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) {\n module.exports = Map\n} else {\n module.exports = require('./pseudomap')\n}\n","var hasOwnProperty = Object.prototype.hasOwnProperty\n\nmodule.exports = PseudoMap\n\nfunction PseudoMap (set) {\n if (!(this instanceof PseudoMap)) // whyyyyyyy\n throw new TypeError(\"Constructor PseudoMap requires 'new'\")\n\n this.clear()\n\n if (set) {\n if ((set instanceof PseudoMap) ||\n (typeof Map === 'function' && set instanceof Map))\n set.forEach(function (value, key) {\n this.set(key, value)\n }, this)\n else if (Array.isArray(set))\n set.forEach(function (kv) {\n this.set(kv[0], kv[1])\n }, this)\n else\n throw new TypeError('invalid argument')\n }\n}\n\nPseudoMap.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n Object.keys(this._data).forEach(function (k) {\n if (k !== 'size')\n fn.call(thisp, this._data[k].value, this._data[k].key)\n }, this)\n}\n\nPseudoMap.prototype.has = function (k) {\n return !!find(this._data, k)\n}\n\nPseudoMap.prototype.get = function (k) {\n var res = find(this._data, k)\n return res && res.value\n}\n\nPseudoMap.prototype.set = function (k, v) {\n set(this._data, k, v)\n}\n\nPseudoMap.prototype.delete = function (k) {\n var res = find(this._data, k)\n if (res) {\n delete this._data[res._index]\n this._data.size--\n }\n}\n\nPseudoMap.prototype.clear = function () {\n var data = Object.create(null)\n data.size = 0\n\n Object.defineProperty(this, '_data', {\n value: data,\n enumerable: false,\n configurable: true,\n writable: false\n })\n}\n\nObject.defineProperty(PseudoMap.prototype, 'size', {\n get: function () {\n return this._data.size\n },\n set: function (n) {},\n enumerable: true,\n configurable: true\n})\n\nPseudoMap.prototype.values =\nPseudoMap.prototype.keys =\nPseudoMap.prototype.entries = function () {\n throw new Error('iterators are not implemented in this version')\n}\n\n// Either identical, or both NaN\nfunction same (a, b) {\n return a === b || a !== a && b !== b\n}\n\nfunction Entry (k, v, i) {\n this.key = k\n this.value = v\n this._index = i\n}\n\nfunction find (data, k) {\n for (var i = 0, s = '_' + k, key = s;\n hasOwnProperty.call(data, key);\n key = s + i++) {\n if (same(data[key].key, k))\n return data[key]\n }\n}\n\nfunction set (data, k, v) {\n for (var i = 0, s = '_' + k, key = s;\n hasOwnProperty.call(data, key);\n key = s + i++) {\n if (same(data[key].key, k)) {\n data[key].value = v\n return\n }\n }\n data.size++\n data[key] = new Entry(k, v, key)\n}\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (!obj) return;\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","module.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport default class EventEmitter {\n listenersMap: Map> = new Map();\n\n addListener>(\n event: Event,\n listener: (...$ElementType) => any,\n ): void {\n const listeners = this.listenersMap.get(event);\n if (listeners === undefined) {\n this.listenersMap.set(event, [listener]);\n } else {\n const index = listeners.indexOf(listener);\n if (index < 0) {\n listeners.push(listener);\n }\n }\n }\n\n emit>(\n event: Event,\n ...args: $ElementType\n ): void {\n const listeners = this.listenersMap.get(event);\n if (listeners !== undefined) {\n if (listeners.length === 1) {\n // No need to clone or try/catch\n const listener = listeners[0];\n listener.apply(null, args);\n } else {\n let didThrow = false;\n let caughtError = null;\n\n const clonedListeners = Array.from(listeners);\n for (let i = 0; i < clonedListeners.length; i++) {\n const listener = clonedListeners[i];\n try {\n listener.apply(null, args);\n } catch (error) {\n if (caughtError === null) {\n didThrow = true;\n caughtError = error;\n }\n }\n }\n\n if (didThrow) {\n throw caughtError;\n }\n }\n }\n }\n\n removeAllListeners(): void {\n this.listenersMap.clear();\n }\n\n removeListener(event: $Keys, listener: Function): void {\n const listeners = this.listenersMap.get(event);\n if (listeners !== undefined) {\n const index = listeners.indexOf(listener);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n }\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport const CHROME_WEBSTORE_EXTENSION_ID = 'fmkadmapgofadopljbjfkapdkoienihi';\nexport const INTERNAL_EXTENSION_ID = 'dnjnjgbfilfphmojnmhliehogmojhclc';\nexport const LOCAL_EXTENSION_ID = 'ikiahnapldjmdmpkmfhjdjilojjhgcbf';\n\n// Flip this flag to true to enable verbose console debug logging.\nexport const __DEBUG__ = false;\n\n// Flip this flag to true to enable performance.mark() and performance.measure() timings.\nexport const __PERFORMANCE_PROFILE__ = false;\n\nexport const TREE_OPERATION_ADD = 1;\nexport const TREE_OPERATION_REMOVE = 2;\nexport const TREE_OPERATION_REORDER_CHILDREN = 3;\nexport const TREE_OPERATION_UPDATE_TREE_BASE_DURATION = 4;\nexport const TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS = 5;\nexport const TREE_OPERATION_REMOVE_ROOT = 6;\nexport const TREE_OPERATION_SET_SUBTREE_MODE = 7;\n\nexport const PROFILING_FLAG_BASIC_SUPPORT = 0b01;\nexport const PROFILING_FLAG_TIMELINE_SUPPORT = 0b10;\n\nexport const LOCAL_STORAGE_DEFAULT_TAB_KEY = 'React::DevTools::defaultTab';\n\nexport const LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY =\n 'React::DevTools::componentFilters';\n\nexport const SESSION_STORAGE_LAST_SELECTION_KEY =\n 'React::DevTools::lastSelection';\n\nexport const LOCAL_STORAGE_OPEN_IN_EDITOR_URL =\n 'React::DevTools::openInEditorUrl';\n\nexport const LOCAL_STORAGE_PARSE_HOOK_NAMES_KEY =\n 'React::DevTools::parseHookNames';\n\nexport const SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY =\n 'React::DevTools::recordChangeDescriptions';\n\nexport const SESSION_STORAGE_RELOAD_AND_PROFILE_KEY =\n 'React::DevTools::reloadAndProfile';\n\nexport const LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS =\n 'React::DevTools::breakOnConsoleErrors';\n\nexport const LOCAL_STORAGE_BROWSER_THEME = 'React::DevTools::theme';\n\nexport const LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY =\n 'React::DevTools::appendComponentStack';\n\nexport const LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY =\n 'React::DevTools::showInlineWarningsAndErrors';\n\nexport const LOCAL_STORAGE_TRACE_UPDATES_ENABLED_KEY =\n 'React::DevTools::traceUpdatesEnabled';\n\nexport const LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE =\n 'React::DevTools::hideConsoleLogsInStrictMode';\n\nexport const PROFILER_EXPORT_VERSION = 5;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport function localStorageGetItem(key: string): any {\n try {\n return localStorage.getItem(key);\n } catch (error) {\n return null;\n }\n}\n\nexport function localStorageRemoveItem(key: string): void {\n try {\n localStorage.removeItem(key);\n } catch (error) {}\n}\n\nexport function localStorageSetItem(key: string, value: any): void {\n try {\n return localStorage.setItem(key, value);\n } catch (error) {}\n}\n\nexport function sessionStorageGetItem(key: string): any {\n try {\n return sessionStorage.getItem(key);\n } catch (error) {\n return null;\n }\n}\n\nexport function sessionStorageRemoveItem(key: string): void {\n try {\n sessionStorage.removeItem(key);\n } catch (error) {}\n}\n\nexport function sessionStorageSetItem(key: string, value: any): void {\n try {\n return sessionStorage.setItem(key, value);\n } catch (error) {}\n}\n","\n\nvar simpleIsEqual = function simpleIsEqual(a, b) {\n return a === b;\n};\n\nexport default function (resultFn) {\n var isEqual = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : simpleIsEqual;\n\n var lastThis = void 0;\n var lastArgs = [];\n var lastResult = void 0;\n var calledOnce = false;\n\n var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n return isEqual(newArg, lastArgs[index]);\n };\n\n var result = function result() {\n for (var _len = arguments.length, newArgs = Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n return lastResult;\n }\n\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n lastResult = resultFn.apply(this, newArgs);\n return lastResult;\n };\n\n return result;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport interface Rect {\n bottom: number;\n height: number;\n left: number;\n right: number;\n top: number;\n width: number;\n}\n\n// Get the window object for the document that a node belongs to,\n// or return null if it cannot be found (node not attached to DOM,\n// etc).\nexport function getOwnerWindow(node: HTMLElement): typeof window | null {\n if (!node.ownerDocument) {\n return null;\n }\n return node.ownerDocument.defaultView;\n}\n\n// Get the iframe containing a node, or return null if it cannot\n// be found (node not within iframe, etc).\nexport function getOwnerIframe(node: HTMLElement): HTMLElement | null {\n const nodeWindow = getOwnerWindow(node);\n if (nodeWindow) {\n return nodeWindow.frameElement;\n }\n return null;\n}\n\n// Get a bounding client rect for a node, with an\n// offset added to compensate for its border.\nexport function getBoundingClientRectWithBorderOffset(node: HTMLElement): Rect {\n const dimensions = getElementDimensions(node);\n return mergeRectOffsets([\n node.getBoundingClientRect(),\n {\n top: dimensions.borderTop,\n left: dimensions.borderLeft,\n bottom: dimensions.borderBottom,\n right: dimensions.borderRight,\n // This width and height won't get used by mergeRectOffsets (since this\n // is not the first rect in the array), but we set them so that this\n // object type checks as a ClientRect.\n width: 0,\n height: 0,\n },\n ]);\n}\n\n// Add together the top, left, bottom, and right properties of\n// each ClientRect, but keep the width and height of the first one.\nexport function mergeRectOffsets(rects: Array): Rect {\n return rects.reduce((previousRect, rect) => {\n if (previousRect == null) {\n return rect;\n }\n\n return {\n top: previousRect.top + rect.top,\n left: previousRect.left + rect.left,\n width: previousRect.width,\n height: previousRect.height,\n bottom: previousRect.bottom + rect.bottom,\n right: previousRect.right + rect.right,\n };\n });\n}\n\n// Calculate a boundingClientRect for a node relative to boundaryWindow,\n// taking into account any offsets caused by intermediate iframes.\nexport function getNestedBoundingClientRect(\n node: HTMLElement,\n boundaryWindow: typeof window,\n): Rect {\n const ownerIframe = getOwnerIframe(node);\n if (ownerIframe && ownerIframe !== boundaryWindow) {\n const rects: Array = [node.getBoundingClientRect()];\n let currentIframe: null | HTMLElement = ownerIframe;\n let onlyOneMore = false;\n while (currentIframe) {\n const rect = getBoundingClientRectWithBorderOffset(currentIframe);\n rects.push(rect);\n currentIframe = getOwnerIframe(currentIframe);\n\n if (onlyOneMore) {\n break;\n }\n // We don't want to calculate iframe offsets upwards beyond\n // the iframe containing the boundaryWindow, but we\n // need to calculate the offset relative to the boundaryWindow.\n if (currentIframe && getOwnerWindow(currentIframe) === boundaryWindow) {\n onlyOneMore = true;\n }\n }\n\n return mergeRectOffsets(rects);\n } else {\n return node.getBoundingClientRect();\n }\n}\n\nexport function getElementDimensions(domElement: Element): {\n borderBottom: number,\n borderLeft: number,\n borderRight: number,\n borderTop: number,\n marginBottom: number,\n marginLeft: number,\n marginRight: number,\n marginTop: number,\n paddingBottom: number,\n paddingLeft: number,\n paddingRight: number,\n paddingTop: number,\n} {\n const calculatedStyle = window.getComputedStyle(domElement);\n return {\n borderLeft: parseInt(calculatedStyle.borderLeftWidth, 10),\n borderRight: parseInt(calculatedStyle.borderRightWidth, 10),\n borderTop: parseInt(calculatedStyle.borderTopWidth, 10),\n borderBottom: parseInt(calculatedStyle.borderBottomWidth, 10),\n marginLeft: parseInt(calculatedStyle.marginLeft, 10),\n marginRight: parseInt(calculatedStyle.marginRight, 10),\n marginTop: parseInt(calculatedStyle.marginTop, 10),\n marginBottom: parseInt(calculatedStyle.marginBottom, 10),\n paddingLeft: parseInt(calculatedStyle.paddingLeft, 10),\n paddingRight: parseInt(calculatedStyle.paddingRight, 10),\n paddingTop: parseInt(calculatedStyle.paddingTop, 10),\n paddingBottom: parseInt(calculatedStyle.paddingBottom, 10),\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {getElementDimensions, getNestedBoundingClientRect} from '../utils';\n\nimport type {Rect} from '../utils';\nimport type Agent from 'react-devtools-shared/src/backend/agent';\n\ntype Box = {top: number, left: number, width: number, height: number};\n\nconst assign = Object.assign;\n\n// Note that the Overlay components are not affected by the active Theme,\n// because they highlight elements in the main Chrome window (outside of devtools).\n// The colors below were chosen to roughly match those used by Chrome devtools.\n\nclass OverlayRect {\n node: HTMLElement;\n border: HTMLElement;\n padding: HTMLElement;\n content: HTMLElement;\n\n constructor(doc: Document, container: HTMLElement) {\n this.node = doc.createElement('div');\n this.border = doc.createElement('div');\n this.padding = doc.createElement('div');\n this.content = doc.createElement('div');\n\n this.border.style.borderColor = overlayStyles.border;\n this.padding.style.borderColor = overlayStyles.padding;\n this.content.style.backgroundColor = overlayStyles.background;\n\n assign(this.node.style, {\n borderColor: overlayStyles.margin,\n pointerEvents: 'none',\n position: 'fixed',\n });\n\n this.node.style.zIndex = '10000000';\n\n this.node.appendChild(this.border);\n this.border.appendChild(this.padding);\n this.padding.appendChild(this.content);\n container.appendChild(this.node);\n }\n\n remove() {\n if (this.node.parentNode) {\n this.node.parentNode.removeChild(this.node);\n }\n }\n\n update(box: Rect, dims: any) {\n boxWrap(dims, 'margin', this.node);\n boxWrap(dims, 'border', this.border);\n boxWrap(dims, 'padding', this.padding);\n\n assign(this.content.style, {\n height:\n box.height -\n dims.borderTop -\n dims.borderBottom -\n dims.paddingTop -\n dims.paddingBottom +\n 'px',\n width:\n box.width -\n dims.borderLeft -\n dims.borderRight -\n dims.paddingLeft -\n dims.paddingRight +\n 'px',\n });\n\n assign(this.node.style, {\n top: box.top - dims.marginTop + 'px',\n left: box.left - dims.marginLeft + 'px',\n });\n }\n}\n\nclass OverlayTip {\n tip: HTMLElement;\n nameSpan: HTMLElement;\n dimSpan: HTMLElement;\n\n constructor(doc: Document, container: HTMLElement) {\n this.tip = doc.createElement('div');\n assign(this.tip.style, {\n display: 'flex',\n flexFlow: 'row nowrap',\n backgroundColor: '#333740',\n borderRadius: '2px',\n fontFamily:\n '\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace',\n fontWeight: 'bold',\n padding: '3px 5px',\n pointerEvents: 'none',\n position: 'fixed',\n fontSize: '12px',\n whiteSpace: 'nowrap',\n });\n\n this.nameSpan = doc.createElement('span');\n this.tip.appendChild(this.nameSpan);\n assign(this.nameSpan.style, {\n color: '#ee78e6',\n borderRight: '1px solid #aaaaaa',\n paddingRight: '0.5rem',\n marginRight: '0.5rem',\n });\n this.dimSpan = doc.createElement('span');\n this.tip.appendChild(this.dimSpan);\n assign(this.dimSpan.style, {\n color: '#d7d7d7',\n });\n\n this.tip.style.zIndex = '10000000';\n container.appendChild(this.tip);\n }\n\n remove() {\n if (this.tip.parentNode) {\n this.tip.parentNode.removeChild(this.tip);\n }\n }\n\n updateText(name: string, width: number, height: number) {\n this.nameSpan.textContent = name;\n this.dimSpan.textContent =\n Math.round(width) + 'px × ' + Math.round(height) + 'px';\n }\n\n updatePosition(dims: Box, bounds: Box) {\n const tipRect = this.tip.getBoundingClientRect();\n const tipPos = findTipPos(dims, bounds, {\n width: tipRect.width,\n height: tipRect.height,\n });\n assign(this.tip.style, tipPos.style);\n }\n}\n\nexport default class Overlay {\n window: any;\n tipBoundsWindow: any;\n container: HTMLElement;\n tip: OverlayTip;\n rects: Array;\n agent: Agent;\n\n constructor(agent: Agent) {\n // Find the root window, because overlays are positioned relative to it.\n const currentWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n this.window = currentWindow;\n\n // When opened in shells/dev, the tooltip should be bound by the app iframe, not by the topmost window.\n const tipBoundsWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n this.tipBoundsWindow = tipBoundsWindow;\n\n const doc = currentWindow.document;\n this.container = doc.createElement('div');\n this.container.style.zIndex = '10000000';\n\n this.tip = new OverlayTip(doc, this.container);\n this.rects = [];\n\n this.agent = agent;\n\n doc.body.appendChild(this.container);\n }\n\n remove() {\n this.tip.remove();\n this.rects.forEach(rect => {\n rect.remove();\n });\n this.rects.length = 0;\n if (this.container.parentNode) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n\n inspect(nodes: Array, name?: ?string) {\n // We can't get the size of text nodes or comment nodes. React as of v15\n // heavily uses comment nodes to delimit text.\n const elements = nodes.filter(node => node.nodeType === Node.ELEMENT_NODE);\n\n while (this.rects.length > elements.length) {\n const rect = this.rects.pop();\n rect.remove();\n }\n if (elements.length === 0) {\n return;\n }\n\n while (this.rects.length < elements.length) {\n this.rects.push(new OverlayRect(this.window.document, this.container));\n }\n\n const outerBox = {\n top: Number.POSITIVE_INFINITY,\n right: Number.NEGATIVE_INFINITY,\n bottom: Number.NEGATIVE_INFINITY,\n left: Number.POSITIVE_INFINITY,\n };\n elements.forEach((element, index) => {\n const box = getNestedBoundingClientRect(element, this.window);\n const dims = getElementDimensions(element);\n\n outerBox.top = Math.min(outerBox.top, box.top - dims.marginTop);\n outerBox.right = Math.max(\n outerBox.right,\n box.left + box.width + dims.marginRight,\n );\n outerBox.bottom = Math.max(\n outerBox.bottom,\n box.top + box.height + dims.marginBottom,\n );\n outerBox.left = Math.min(outerBox.left, box.left - dims.marginLeft);\n\n const rect = this.rects[index];\n rect.update(box, dims);\n });\n\n if (!name) {\n name = elements[0].nodeName.toLowerCase();\n\n const node = elements[0];\n const rendererInterface =\n this.agent.getBestMatchingRendererInterface(node);\n if (rendererInterface) {\n const id = rendererInterface.getFiberIDForNative(node, true);\n if (id) {\n const ownerName = rendererInterface.getDisplayNameForFiberID(\n id,\n true,\n );\n if (ownerName) {\n name += ' (in ' + ownerName + ')';\n }\n }\n }\n }\n\n this.tip.updateText(\n name,\n outerBox.right - outerBox.left,\n outerBox.bottom - outerBox.top,\n );\n const tipBounds = getNestedBoundingClientRect(\n this.tipBoundsWindow.document.documentElement,\n this.window,\n );\n\n this.tip.updatePosition(\n {\n top: outerBox.top,\n left: outerBox.left,\n height: outerBox.bottom - outerBox.top,\n width: outerBox.right - outerBox.left,\n },\n {\n top: tipBounds.top + this.tipBoundsWindow.scrollY,\n left: tipBounds.left + this.tipBoundsWindow.scrollX,\n height: this.tipBoundsWindow.innerHeight,\n width: this.tipBoundsWindow.innerWidth,\n },\n );\n }\n}\n\nfunction findTipPos(\n dims: Box,\n bounds: Box,\n tipSize: {height: number, width: number},\n) {\n const tipHeight = Math.max(tipSize.height, 20);\n const tipWidth = Math.max(tipSize.width, 60);\n const margin = 5;\n\n let top: number | string;\n if (dims.top + dims.height + tipHeight <= bounds.top + bounds.height) {\n if (dims.top + dims.height < bounds.top + 0) {\n top = bounds.top + margin;\n } else {\n top = dims.top + dims.height + margin;\n }\n } else if (dims.top - tipHeight <= bounds.top + bounds.height) {\n if (dims.top - tipHeight - margin < bounds.top + margin) {\n top = bounds.top + margin;\n } else {\n top = dims.top - tipHeight - margin;\n }\n } else {\n top = bounds.top + bounds.height - tipHeight - margin;\n }\n\n let left: number | string = dims.left + margin;\n if (dims.left < bounds.left) {\n left = bounds.left + margin;\n }\n if (dims.left + tipWidth > bounds.left + bounds.width) {\n left = bounds.left + bounds.width - tipWidth - margin;\n }\n\n top += 'px';\n left += 'px';\n return {\n style: {top, left},\n };\n}\n\nfunction boxWrap(dims: any, what: string, node: HTMLElement) {\n assign(node.style, {\n borderTopWidth: dims[what + 'Top'] + 'px',\n borderLeftWidth: dims[what + 'Left'] + 'px',\n borderRightWidth: dims[what + 'Right'] + 'px',\n borderBottomWidth: dims[what + 'Bottom'] + 'px',\n borderStyle: 'solid',\n });\n}\n\nconst overlayStyles = {\n background: 'rgba(120, 170, 210, 0.7)',\n padding: 'rgba(77, 200, 0, 0.3)',\n margin: 'rgba(255, 155, 0, 0.3)',\n border: 'rgba(255, 200, 50, 0.3)',\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type Agent from 'react-devtools-shared/src/backend/agent';\n\nimport Overlay from './Overlay';\n\nconst SHOW_DURATION = 2000;\n\nlet timeoutID: TimeoutID | null = null;\nlet overlay: Overlay | null = null;\n\nexport function hideOverlay(agent: Agent) {\n if (window.document == null) {\n agent.emit('hideNativeHighlight');\n return;\n }\n timeoutID = null;\n\n if (overlay !== null) {\n overlay.remove();\n overlay = null;\n }\n}\n\nexport function showOverlay(\n elements: Array | null,\n componentName: string | null,\n agent: Agent,\n hideAfterTimeout: boolean,\n) {\n if (window.document == null) {\n if (elements != null && elements[0] != null) {\n agent.emit('showNativeHighlight', elements[0]);\n }\n return;\n }\n\n if (timeoutID !== null) {\n clearTimeout(timeoutID);\n }\n\n if (elements == null) {\n return;\n }\n\n if (overlay === null) {\n overlay = new Overlay(agent);\n }\n\n overlay.inspect(elements, componentName);\n\n if (hideAfterTimeout) {\n timeoutID = setTimeout(() => hideOverlay(agent), SHOW_DURATION);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport {hideOverlay, showOverlay} from './Highlighter';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\n\n// This plug-in provides in-page highlighting of the selected element.\n// It is used by the browser extension and the standalone DevTools shell (when connected to a browser).\n// It is not currently the mechanism used to highlight React Native views.\n// That is done by the React Native Inspector component.\n\nlet iframesListeningTo: Set = new Set();\n\nexport default function setupHighlighter(\n bridge: BackendBridge,\n agent: Agent,\n): void {\n bridge.addListener(\n 'clearNativeElementHighlight',\n clearNativeElementHighlight,\n );\n bridge.addListener('highlightNativeElement', highlightNativeElement);\n bridge.addListener('shutdown', stopInspectingNative);\n bridge.addListener('startInspectingNative', startInspectingNative);\n bridge.addListener('stopInspectingNative', stopInspectingNative);\n\n function startInspectingNative() {\n registerListenersOnWindow(window);\n }\n\n function registerListenersOnWindow(window: any) {\n // This plug-in may run in non-DOM environments (e.g. React Native).\n if (window && typeof window.addEventListener === 'function') {\n window.addEventListener('click', onClick, true);\n window.addEventListener('mousedown', onMouseEvent, true);\n window.addEventListener('mouseover', onMouseEvent, true);\n window.addEventListener('mouseup', onMouseEvent, true);\n window.addEventListener('pointerdown', onPointerDown, true);\n window.addEventListener('pointermove', onPointerMove, true);\n window.addEventListener('pointerup', onPointerUp, true);\n } else {\n agent.emit('startInspectingNative');\n }\n }\n\n function stopInspectingNative() {\n hideOverlay(agent);\n removeListenersOnWindow(window);\n iframesListeningTo.forEach(function (frame) {\n try {\n removeListenersOnWindow(frame.contentWindow);\n } catch (error) {\n // This can error when the iframe is on a cross-origin.\n }\n });\n iframesListeningTo = new Set();\n }\n\n function removeListenersOnWindow(window: any) {\n // This plug-in may run in non-DOM environments (e.g. React Native).\n if (window && typeof window.removeEventListener === 'function') {\n window.removeEventListener('click', onClick, true);\n window.removeEventListener('mousedown', onMouseEvent, true);\n window.removeEventListener('mouseover', onMouseEvent, true);\n window.removeEventListener('mouseup', onMouseEvent, true);\n window.removeEventListener('pointerdown', onPointerDown, true);\n window.removeEventListener('pointermove', onPointerMove, true);\n window.removeEventListener('pointerup', onPointerUp, true);\n } else {\n agent.emit('stopInspectingNative');\n }\n }\n\n function clearNativeElementHighlight() {\n hideOverlay(agent);\n }\n\n function highlightNativeElement({\n displayName,\n hideAfterTimeout,\n id,\n openNativeElementsPanel,\n rendererID,\n scrollIntoView,\n }: {\n displayName: string | null,\n hideAfterTimeout: boolean,\n id: number,\n openNativeElementsPanel: boolean,\n rendererID: number,\n scrollIntoView: boolean,\n ...\n }) {\n const renderer = agent.rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n\n hideOverlay(agent);\n return;\n }\n\n // In some cases fiber may already be unmounted\n if (!renderer.hasFiberWithId(id)) {\n hideOverlay(agent);\n return;\n }\n\n const nodes: ?Array = (renderer.findNativeNodesForFiberID(\n id,\n ): any);\n\n if (nodes != null && nodes[0] != null) {\n const node = nodes[0];\n // $FlowFixMe[method-unbinding]\n if (scrollIntoView && typeof node.scrollIntoView === 'function') {\n // If the node isn't visible show it before highlighting it.\n // We may want to reconsider this; it might be a little disruptive.\n node.scrollIntoView({block: 'nearest', inline: 'nearest'});\n }\n\n showOverlay(nodes, displayName, agent, hideAfterTimeout);\n\n if (openNativeElementsPanel) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0 = node;\n bridge.send('syncSelectionToNativeElementsPanel');\n }\n } else {\n hideOverlay(agent);\n }\n }\n\n function onClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n stopInspectingNative();\n\n bridge.send('stopInspectingNative', true);\n }\n\n function onMouseEvent(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n function onPointerDown(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n selectFiberForNode(getEventTarget(event));\n }\n\n let lastHoveredNode: HTMLElement | null = null;\n function onPointerMove(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n const target: HTMLElement = getEventTarget(event);\n if (lastHoveredNode === target) return;\n lastHoveredNode = target;\n\n if (target.tagName === 'IFRAME') {\n const iframe: HTMLIFrameElement = (target: any);\n try {\n if (!iframesListeningTo.has(iframe)) {\n const window = iframe.contentWindow;\n registerListenersOnWindow(window);\n iframesListeningTo.add(iframe);\n }\n } catch (error) {\n // This can error when the iframe is on a cross-origin.\n }\n }\n\n // Don't pass the name explicitly.\n // It will be inferred from DOM tag and Fiber owner.\n showOverlay([target], null, agent, false);\n\n selectFiberForNode(target);\n }\n\n function onPointerUp(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n const selectFiberForNode = throttle(\n memoize((node: HTMLElement) => {\n const id = agent.getIDForNode(node);\n if (id !== null) {\n bridge.send('selectFiber', id);\n }\n }),\n 200,\n // Don't change the selection in the very first 200ms\n // because those are usually unintentional as you lift the cursor.\n {leading: false},\n );\n\n function getEventTarget(event: MouseEvent): HTMLElement {\n if (event.composed) {\n return (event.composedPath()[0]: any);\n }\n\n return (event.target: any);\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {Data} from './index';\nimport type {Rect} from '../utils';\nimport type {NativeType} from '../../types';\nimport type Agent from '../../agent';\n\nconst OUTLINE_COLOR = '#f0f0f0';\n\n// Note these colors are in sync with DevTools Profiler chart colors.\nconst COLORS = [\n '#37afa9',\n '#63b19e',\n '#80b393',\n '#97b488',\n '#abb67d',\n '#beb771',\n '#cfb965',\n '#dfba57',\n '#efbb49',\n '#febc38',\n];\n\nlet canvas: HTMLCanvasElement | null = null;\n\nexport function draw(nodeToData: Map, agent: Agent): void {\n if (window.document == null) {\n const nodesToDraw = [];\n iterateNodes(nodeToData, (_, color, node) => {\n nodesToDraw.push({node, color});\n });\n\n agent.emit('drawTraceUpdates', nodesToDraw);\n return;\n }\n\n if (canvas === null) {\n initialize();\n }\n\n const canvasFlow: HTMLCanvasElement = ((canvas: any): HTMLCanvasElement);\n canvasFlow.width = window.innerWidth;\n canvasFlow.height = window.innerHeight;\n\n const context = canvasFlow.getContext('2d');\n context.clearRect(0, 0, canvasFlow.width, canvasFlow.height);\n iterateNodes(nodeToData, (rect, color) => {\n if (rect !== null) {\n drawBorder(context, rect, color);\n }\n });\n}\n\nfunction iterateNodes(\n nodeToData: Map,\n execute: (rect: Rect | null, color: string, node: NativeType) => void,\n) {\n nodeToData.forEach(({count, rect}, node) => {\n const colorIndex = Math.min(COLORS.length - 1, count - 1);\n const color = COLORS[colorIndex];\n execute(rect, color, node);\n });\n}\n\nfunction drawBorder(\n context: CanvasRenderingContext2D,\n rect: Rect,\n color: string,\n): void {\n const {height, left, top, width} = rect;\n\n // outline\n context.lineWidth = 1;\n context.strokeStyle = OUTLINE_COLOR;\n\n context.strokeRect(left - 1, top - 1, width + 2, height + 2);\n\n // inset\n context.lineWidth = 1;\n context.strokeStyle = OUTLINE_COLOR;\n context.strokeRect(left + 1, top + 1, width - 1, height - 1);\n context.strokeStyle = color;\n\n context.setLineDash([0]);\n\n // border\n context.lineWidth = 1;\n context.strokeRect(left, top, width - 1, height - 1);\n\n context.setLineDash([0]);\n}\n\nexport function destroy(agent: Agent): void {\n if (window.document == null) {\n agent.emit('disableTraceUpdates');\n return;\n }\n\n if (canvas !== null) {\n if (canvas.parentNode != null) {\n canvas.parentNode.removeChild(canvas);\n }\n canvas = null;\n }\n}\n\nfunction initialize(): void {\n canvas = window.document.createElement('canvas');\n canvas.style.cssText = `\n xx-background-color: red;\n xx-opacity: 0.5;\n bottom: 0;\n left: 0;\n pointer-events: none;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 1000000000;\n `;\n\n const root = window.document.documentElement;\n root.insertBefore(canvas, root.firstChild);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport {destroy as destroyCanvas, draw} from './canvas';\nimport {getNestedBoundingClientRect} from '../utils';\n\nimport type {NativeType} from '../../types';\nimport type {Rect} from '../utils';\n\n// How long the rect should be shown for?\nconst DISPLAY_DURATION = 250;\n\n// What's the longest we are willing to show the overlay for?\n// This can be important if we're getting a flurry of events (e.g. scroll update).\nconst MAX_DISPLAY_DURATION = 3000;\n\n// How long should a rect be considered valid for?\nconst REMEASUREMENT_AFTER_DURATION = 250;\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n // $FlowFixMe[method-unbinding]\n typeof performance === 'object' && typeof performance.now === 'function'\n ? () => performance.now()\n : () => Date.now();\n\nexport type Data = {\n count: number,\n expirationTime: number,\n lastMeasuredAt: number,\n rect: Rect | null,\n};\n\nconst nodeToData: Map = new Map();\n\nlet agent: Agent = ((null: any): Agent);\nlet drawAnimationFrameID: AnimationFrameID | null = null;\nlet isEnabled: boolean = false;\nlet redrawTimeoutID: TimeoutID | null = null;\n\nexport function initialize(injectedAgent: Agent): void {\n agent = injectedAgent;\n agent.addListener('traceUpdates', traceUpdates);\n}\n\nexport function toggleEnabled(value: boolean): void {\n isEnabled = value;\n\n if (!isEnabled) {\n nodeToData.clear();\n\n if (drawAnimationFrameID !== null) {\n cancelAnimationFrame(drawAnimationFrameID);\n drawAnimationFrameID = null;\n }\n\n if (redrawTimeoutID !== null) {\n clearTimeout(redrawTimeoutID);\n redrawTimeoutID = null;\n }\n\n destroyCanvas(agent);\n }\n}\n\nfunction traceUpdates(nodes: Set): void {\n if (!isEnabled) {\n return;\n }\n\n nodes.forEach(node => {\n const data = nodeToData.get(node);\n const now = getCurrentTime();\n\n let lastMeasuredAt = data != null ? data.lastMeasuredAt : 0;\n let rect = data != null ? data.rect : null;\n if (rect === null || lastMeasuredAt + REMEASUREMENT_AFTER_DURATION < now) {\n lastMeasuredAt = now;\n rect = measureNode(node);\n }\n\n nodeToData.set(node, {\n count: data != null ? data.count + 1 : 1,\n expirationTime:\n data != null\n ? Math.min(\n now + MAX_DISPLAY_DURATION,\n data.expirationTime + DISPLAY_DURATION,\n )\n : now + DISPLAY_DURATION,\n lastMeasuredAt,\n rect,\n });\n });\n\n if (redrawTimeoutID !== null) {\n clearTimeout(redrawTimeoutID);\n redrawTimeoutID = null;\n }\n\n if (drawAnimationFrameID === null) {\n drawAnimationFrameID = requestAnimationFrame(prepareToDraw);\n }\n}\n\nfunction prepareToDraw(): void {\n drawAnimationFrameID = null;\n redrawTimeoutID = null;\n\n const now = getCurrentTime();\n let earliestExpiration = Number.MAX_VALUE;\n\n // Remove any items that have already expired.\n nodeToData.forEach((data, node) => {\n if (data.expirationTime < now) {\n nodeToData.delete(node);\n } else {\n earliestExpiration = Math.min(earliestExpiration, data.expirationTime);\n }\n });\n\n draw(nodeToData, agent);\n\n if (earliestExpiration !== Number.MAX_VALUE) {\n redrawTimeoutID = setTimeout(prepareToDraw, earliestExpiration - now);\n }\n}\n\nfunction measureNode(node: Object): Rect | null {\n if (!node || typeof node.getBoundingClientRect !== 'function') {\n return null;\n }\n\n const currentWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n\n return getNestedBoundingClientRect(node, currentWindow);\n}\n","/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\nexport const satisfies = (version, range) => {\n // if no range operator then \"=\"\n const m = range.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~')\n return compare(version, range, op);\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3, , vp] = validateAndParse(version);\n const [r1, r2, r3, , rp] = validateAndParse(range);\n const v = [v1, v2, v3];\n const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x'];\n // validate pre-release\n if (rp) {\n if (!vp)\n return false;\n if (compareSegments(v, r) !== 0)\n return false;\n if (compareSegments(vp.split('.'), rp.split('.')) === -1)\n return false;\n }\n // first non-zero number\n const nonZero = r.findIndex((v) => v !== '0') + 1;\n // pointer to where segments can be >=\n const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;\n // before pointer must be equal\n if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0)\n return false;\n // after pointer must be >=\n if (compareSegments(v.slice(i), r.slice(i)) === -1)\n return false;\n return true;\n};\nconst semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nconst validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=index.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n\n// The Symbol used to tag the ReactElement-like types.\nexport const REACT_ELEMENT_TYPE: symbol = Symbol.for('react.element');\nexport const REACT_PORTAL_TYPE: symbol = Symbol.for('react.portal');\nexport const REACT_FRAGMENT_TYPE: symbol = Symbol.for('react.fragment');\nexport const REACT_STRICT_MODE_TYPE: symbol = Symbol.for('react.strict_mode');\nexport const REACT_PROFILER_TYPE: symbol = Symbol.for('react.profiler');\nexport const REACT_PROVIDER_TYPE: symbol = Symbol.for('react.provider');\nexport const REACT_CONTEXT_TYPE: symbol = Symbol.for('react.context');\nexport const REACT_SERVER_CONTEXT_TYPE: symbol = Symbol.for(\n 'react.server_context',\n);\nexport const REACT_FORWARD_REF_TYPE: symbol = Symbol.for('react.forward_ref');\nexport const REACT_SUSPENSE_TYPE: symbol = Symbol.for('react.suspense');\nexport const REACT_SUSPENSE_LIST_TYPE: symbol = Symbol.for(\n 'react.suspense_list',\n);\nexport const REACT_MEMO_TYPE: symbol = Symbol.for('react.memo');\nexport const REACT_LAZY_TYPE: symbol = Symbol.for('react.lazy');\nexport const REACT_SCOPE_TYPE: symbol = Symbol.for('react.scope');\nexport const REACT_DEBUG_TRACING_MODE_TYPE: symbol = Symbol.for(\n 'react.debug_trace_mode',\n);\nexport const REACT_OFFSCREEN_TYPE: symbol = Symbol.for('react.offscreen');\nexport const REACT_LEGACY_HIDDEN_TYPE: symbol = Symbol.for(\n 'react.legacy_hidden',\n);\nexport const REACT_CACHE_TYPE: symbol = Symbol.for('react.cache');\nexport const REACT_TRACING_MARKER_TYPE: symbol = Symbol.for(\n 'react.tracing_marker',\n);\nexport const REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED: symbol = Symbol.for(\n 'react.default_value',\n);\n\nexport const REACT_MEMO_CACHE_SENTINEL: symbol = Symbol.for(\n 'react.memo_cache_sentinel',\n);\n\nconst MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nconst FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nexport function getIteratorFn(maybeIterable: ?any): ?() => ?Iterator {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n const maybeIterator =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n return null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n/**\n * WARNING:\n * This file contains types that are designed for React DevTools UI and how it interacts with the backend.\n * They might be used in different versions of DevTools backends.\n * Be mindful of backwards compatibility when making changes.\n */\n\nexport type BrowserTheme = 'dark' | 'light';\n\nexport type Wall = {\n // `listen` returns the \"unlisten\" function.\n listen: (fn: Function) => Function,\n send: (event: string, payload: any, transferable?: Array) => void,\n};\n\n// WARNING\n// The values below are referenced by ComponentFilters (which are saved via localStorage).\n// Do not change them or it will break previously saved user customizations.\n// If new element types are added, use new numbers rather than re-ordering existing ones.\n//\n// Changing these types is also a backwards breaking change for the standalone shell,\n// since the frontend and backend must share the same values-\n// and the backend is embedded in certain environments (like React Native).\nexport const ElementTypeClass = 1;\nexport const ElementTypeContext = 2;\nexport const ElementTypeFunction = 5;\nexport const ElementTypeForwardRef = 6;\nexport const ElementTypeHostComponent = 7;\nexport const ElementTypeMemo = 8;\nexport const ElementTypeOtherOrUnknown = 9;\nexport const ElementTypeProfiler = 10;\nexport const ElementTypeRoot = 11;\nexport const ElementTypeSuspense = 12;\nexport const ElementTypeSuspenseList = 13;\nexport const ElementTypeTracingMarker = 14;\n\n// Different types of elements displayed in the Elements tree.\n// These types may be used to visually distinguish types,\n// or to enable/disable certain functionality.\nexport type ElementType = 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;\n\n// WARNING\n// The values below are referenced by ComponentFilters (which are saved via localStorage).\n// Do not change them or it will break previously saved user customizations.\n// If new filter types are added, use new numbers rather than re-ordering existing ones.\nexport const ComponentFilterElementType = 1;\nexport const ComponentFilterDisplayName = 2;\nexport const ComponentFilterLocation = 3;\nexport const ComponentFilterHOC = 4;\n\nexport type ComponentFilterType = 1 | 2 | 3 | 4;\n\n// Hide all elements of types in this Set.\n// We hide host components only by default.\nexport type ElementTypeComponentFilter = {\n isEnabled: boolean,\n type: 1,\n value: ElementType,\n};\n\n// Hide all elements with displayNames or paths matching one or more of the RegExps in this Set.\n// Path filters are only used when elements include debug source location.\nexport type RegExpComponentFilter = {\n isEnabled: boolean,\n isValid: boolean,\n type: 2 | 3,\n value: string,\n};\n\nexport type BooleanComponentFilter = {\n isEnabled: boolean,\n isValid: boolean,\n type: 4,\n};\n\nexport type ComponentFilter =\n | BooleanComponentFilter\n | ElementTypeComponentFilter\n | RegExpComponentFilter;\n\nexport type HookName = string | null;\n// Map of hook source (\"::\") to name.\n// Hook source is used instead of the hook itself because the latter is not stable between element inspections.\n// We use a Map rather than an Array because of nested hooks and traversal ordering.\nexport type HookSourceLocationKey = string;\nexport type HookNames = Map;\n\nexport type LRUCache = {\n del: (key: K) => void,\n get: (key: K) => V,\n has: (key: K) => boolean,\n reset: () => void,\n set: (key: K, value: V) => void,\n};\n\nexport type StyleXPlugin = {\n sources: Array,\n resolvedStyles: Object,\n};\n\nexport type Plugins = {\n stylex: StyleXPlugin | null,\n};\n\nexport const StrictMode = 1;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nconst isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport LRU from 'lru-cache';\nimport {\n isElement,\n typeOf,\n ContextConsumer,\n ContextProvider,\n ForwardRef,\n Fragment,\n Lazy,\n Memo,\n Portal,\n Profiler,\n StrictMode,\n Suspense,\n} from 'react-is';\nimport {\n REACT_SUSPENSE_LIST_TYPE as SuspenseList,\n REACT_TRACING_MARKER_TYPE as TracingMarker,\n} from 'shared/ReactSymbols';\nimport {\n TREE_OPERATION_ADD,\n TREE_OPERATION_REMOVE,\n TREE_OPERATION_REMOVE_ROOT,\n TREE_OPERATION_REORDER_CHILDREN,\n TREE_OPERATION_SET_SUBTREE_MODE,\n TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS,\n TREE_OPERATION_UPDATE_TREE_BASE_DURATION,\n LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n LOCAL_STORAGE_OPEN_IN_EDITOR_URL,\n LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS,\n LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY,\n LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE,\n} from './constants';\nimport {ComponentFilterElementType, ElementTypeHostComponent} from './types';\nimport {\n ElementTypeRoot,\n ElementTypeClass,\n ElementTypeForwardRef,\n ElementTypeFunction,\n ElementTypeMemo,\n} from 'react-devtools-shared/src/types';\nimport {localStorageGetItem, localStorageSetItem} from './storage';\nimport {meta} from './hydration';\nimport isArray from './isArray';\n\nimport type {ComponentFilter, ElementType, BrowserTheme} from './types';\nimport type {LRUCache} from 'react-devtools-shared/src/types';\n\n// $FlowFixMe[method-unbinding]\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nconst cachedDisplayNames: WeakMap = new WeakMap();\n\n// On large trees, encoding takes significant time.\n// Try to reuse the already encoded strings.\nconst encodedStringCache: LRUCache> = new LRU({\n max: 1000,\n});\n\nexport function alphaSortKeys(\n a: string | number | symbol,\n b: string | number | symbol,\n): number {\n if (a.toString() > b.toString()) {\n return 1;\n } else if (b.toString() > a.toString()) {\n return -1;\n } else {\n return 0;\n }\n}\n\nexport function getAllEnumerableKeys(\n obj: Object,\n): Set {\n const keys = new Set();\n let current = obj;\n while (current != null) {\n const currentKeys = [\n ...Object.keys(current),\n ...Object.getOwnPropertySymbols(current),\n ];\n const descriptors = Object.getOwnPropertyDescriptors(current);\n currentKeys.forEach(key => {\n // $FlowFixMe[incompatible-type]: key can be a Symbol https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor\n if (descriptors[key].enumerable) {\n keys.add(key);\n }\n });\n current = Object.getPrototypeOf(current);\n }\n return keys;\n}\n\n// Mirror https://github.com/facebook/react/blob/7c21bf72ace77094fd1910cc350a548287ef8350/packages/shared/getComponentName.js#L27-L37\nexport function getWrappedDisplayName(\n outerType: mixed,\n innerType: any,\n wrapperName: string,\n fallbackName?: string,\n): string {\n const displayName = (outerType: any).displayName;\n return (\n displayName || `${wrapperName}(${getDisplayName(innerType, fallbackName)})`\n );\n}\n\nexport function getDisplayName(\n type: Function,\n fallbackName: string = 'Anonymous',\n): string {\n const nameFromCache = cachedDisplayNames.get(type);\n if (nameFromCache != null) {\n return nameFromCache;\n }\n\n let displayName = fallbackName;\n\n // The displayName property is not guaranteed to be a string.\n // It's only safe to use for our purposes if it's a string.\n // github.com/facebook/react-devtools/issues/803\n if (typeof type.displayName === 'string') {\n displayName = type.displayName;\n } else if (typeof type.name === 'string' && type.name !== '') {\n displayName = type.name;\n }\n\n cachedDisplayNames.set(type, displayName);\n return displayName;\n}\n\nlet uidCounter: number = 0;\n\nexport function getUID(): number {\n return ++uidCounter;\n}\n\nexport function utfDecodeString(array: Array): string {\n // Avoid spreading the array (e.g. String.fromCodePoint(...array))\n // Functions arguments are first placed on the stack before the function is called\n // which throws a RangeError for large arrays.\n // See github.com/facebook/react/issues/22293\n let string = '';\n for (let i = 0; i < array.length; i++) {\n const char = array[i];\n string += String.fromCodePoint(char);\n }\n return string;\n}\n\nfunction surrogatePairToCodePoint(\n charCode1: number,\n charCode2: number,\n): number {\n return ((charCode1 & 0x3ff) << 10) + (charCode2 & 0x3ff) + 0x10000;\n}\n\n// Credit for this encoding approach goes to Tim Down:\n// https://stackoverflow.com/questions/4877326/how-can-i-tell-if-a-string-contains-multibyte-characters-in-javascript\nexport function utfEncodeString(string: string): Array {\n const cached = encodedStringCache.get(string);\n if (cached !== undefined) {\n return cached;\n }\n\n const encoded = [];\n let i = 0;\n let charCode;\n while (i < string.length) {\n charCode = string.charCodeAt(i);\n // Handle multibyte unicode characters (like emoji).\n if ((charCode & 0xf800) === 0xd800) {\n encoded.push(surrogatePairToCodePoint(charCode, string.charCodeAt(++i)));\n } else {\n encoded.push(charCode);\n }\n ++i;\n }\n\n encodedStringCache.set(string, encoded);\n\n return encoded;\n}\n\nexport function printOperationsArray(operations: Array) {\n // The first two values are always rendererID and rootID\n const rendererID = operations[0];\n const rootID = operations[1];\n\n const logs = [`operations for renderer:${rendererID} and root:${rootID}`];\n\n let i = 2;\n\n // Reassemble the string table.\n const stringTable: Array = [\n null, // ID = 0 corresponds to the null string.\n ];\n const stringTableSize = operations[i++];\n const stringTableEnd = i + stringTableSize;\n while (i < stringTableEnd) {\n const nextLength = operations[i++];\n const nextString = utfDecodeString(\n (operations.slice(i, i + nextLength): any),\n );\n stringTable.push(nextString);\n i += nextLength;\n }\n\n while (i < operations.length) {\n const operation = operations[i];\n\n switch (operation) {\n case TREE_OPERATION_ADD: {\n const id = ((operations[i + 1]: any): number);\n const type = ((operations[i + 2]: any): ElementType);\n\n i += 3;\n\n if (type === ElementTypeRoot) {\n logs.push(`Add new root node ${id}`);\n\n i++; // isStrictModeCompliant\n i++; // supportsProfiling\n i++; // supportsStrictMode\n i++; // hasOwnerMetadata\n } else {\n const parentID = ((operations[i]: any): number);\n i++;\n\n i++; // ownerID\n\n const displayNameStringID = operations[i];\n const displayName = stringTable[displayNameStringID];\n i++;\n\n i++; // key\n\n logs.push(\n `Add node ${id} (${displayName || 'null'}) as child of ${parentID}`,\n );\n }\n break;\n }\n case TREE_OPERATION_REMOVE: {\n const removeLength = ((operations[i + 1]: any): number);\n i += 2;\n\n for (let removeIndex = 0; removeIndex < removeLength; removeIndex++) {\n const id = ((operations[i]: any): number);\n i += 1;\n\n logs.push(`Remove node ${id}`);\n }\n break;\n }\n case TREE_OPERATION_REMOVE_ROOT: {\n i += 1;\n\n logs.push(`Remove root ${rootID}`);\n break;\n }\n case TREE_OPERATION_SET_SUBTREE_MODE: {\n const id = operations[i + 1];\n const mode = operations[i + 1];\n\n i += 3;\n\n logs.push(`Mode ${mode} set for subtree with root ${id}`);\n break;\n }\n case TREE_OPERATION_REORDER_CHILDREN: {\n const id = ((operations[i + 1]: any): number);\n const numChildren = ((operations[i + 2]: any): number);\n i += 3;\n const children = operations.slice(i, i + numChildren);\n i += numChildren;\n\n logs.push(`Re-order node ${id} children ${children.join(',')}`);\n break;\n }\n case TREE_OPERATION_UPDATE_TREE_BASE_DURATION:\n // Base duration updates are only sent while profiling is in progress.\n // We can ignore them at this point.\n // The profiler UI uses them lazily in order to generate the tree.\n i += 3;\n break;\n case TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS:\n const id = operations[i + 1];\n const numErrors = operations[i + 2];\n const numWarnings = operations[i + 3];\n\n i += 4;\n\n logs.push(\n `Node ${id} has ${numErrors} errors and ${numWarnings} warnings`,\n );\n break;\n default:\n throw Error(`Unsupported Bridge operation \"${operation}\"`);\n }\n }\n\n console.log(logs.join('\\n '));\n}\n\nexport function getDefaultComponentFilters(): Array {\n return [\n {\n type: ComponentFilterElementType,\n value: ElementTypeHostComponent,\n isEnabled: true,\n },\n ];\n}\n\nexport function getSavedComponentFilters(): Array {\n try {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n );\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n return getDefaultComponentFilters();\n}\n\nexport function setSavedComponentFilters(\n componentFilters: Array,\n): void {\n localStorageSetItem(\n LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n JSON.stringify(componentFilters),\n );\n}\n\nfunction parseBool(s: ?string): ?boolean {\n if (s === 'true') {\n return true;\n }\n if (s === 'false') {\n return false;\n }\n}\n\nexport function castBool(v: any): ?boolean {\n if (v === true || v === false) {\n return v;\n }\n}\n\nexport function castBrowserTheme(v: any): ?BrowserTheme {\n if (v === 'light' || v === 'dark' || v === 'auto') {\n return v;\n }\n}\n\nexport function getAppendComponentStack(): boolean {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY,\n );\n return parseBool(raw) ?? true;\n}\n\nexport function getBreakOnConsoleErrors(): boolean {\n const raw = localStorageGetItem(LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS);\n return parseBool(raw) ?? false;\n}\n\nexport function getHideConsoleLogsInStrictMode(): boolean {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE,\n );\n return parseBool(raw) ?? false;\n}\n\nexport function getShowInlineWarningsAndErrors(): boolean {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n );\n return parseBool(raw) ?? true;\n}\n\nexport function getDefaultOpenInEditorURL(): string {\n return typeof process.env.EDITOR_URL === 'string'\n ? process.env.EDITOR_URL\n : '';\n}\n\nexport function getOpenInEditorURL(): string {\n try {\n const raw = localStorageGetItem(LOCAL_STORAGE_OPEN_IN_EDITOR_URL);\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n return getDefaultOpenInEditorURL();\n}\n\nexport function separateDisplayNameAndHOCs(\n displayName: string | null,\n type: ElementType,\n): [string | null, Array | null] {\n if (displayName === null) {\n return [null, null];\n }\n\n let hocDisplayNames = null;\n\n switch (type) {\n case ElementTypeClass:\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n if (displayName.indexOf('(') >= 0) {\n const matches = displayName.match(/[^()]+/g);\n if (matches != null) {\n displayName = matches.pop();\n hocDisplayNames = matches;\n }\n }\n break;\n default:\n break;\n }\n\n return [displayName, hocDisplayNames];\n}\n\n// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nexport function shallowDiffers(prev: Object, next: Object): boolean {\n for (const attribute in prev) {\n if (!(attribute in next)) {\n return true;\n }\n }\n for (const attribute in next) {\n if (prev[attribute] !== next[attribute]) {\n return true;\n }\n }\n return false;\n}\n\nexport function getInObject(object: Object, path: Array): any {\n return path.reduce((reduced: Object, attr: any): any => {\n if (reduced) {\n if (hasOwnProperty.call(reduced, attr)) {\n return reduced[attr];\n }\n if (typeof reduced[Symbol.iterator] === 'function') {\n // Convert iterable to array and return array[index]\n //\n // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n return Array.from(reduced)[attr];\n }\n }\n\n return null;\n }, object);\n}\n\nexport function deletePathInObject(\n object: Object,\n path: Array,\n) {\n const length = path.length;\n const last = path[length - 1];\n if (object != null) {\n const parent = getInObject(object, path.slice(0, length - 1));\n if (parent) {\n if (isArray(parent)) {\n parent.splice(((last: any): number), 1);\n } else {\n delete parent[last];\n }\n }\n }\n}\n\nexport function renamePathInObject(\n object: Object,\n oldPath: Array,\n newPath: Array,\n) {\n const length = oldPath.length;\n if (object != null) {\n const parent = getInObject(object, oldPath.slice(0, length - 1));\n if (parent) {\n const lastOld = oldPath[length - 1];\n const lastNew = newPath[length - 1];\n parent[lastNew] = parent[lastOld];\n if (isArray(parent)) {\n parent.splice(((lastOld: any): number), 1);\n } else {\n delete parent[lastOld];\n }\n }\n }\n}\n\nexport function setInObject(\n object: Object,\n path: Array,\n value: any,\n) {\n const length = path.length;\n const last = path[length - 1];\n if (object != null) {\n const parent = getInObject(object, path.slice(0, length - 1));\n if (parent) {\n parent[last] = value;\n }\n }\n}\n\nexport type DataType =\n | 'array'\n | 'array_buffer'\n | 'bigint'\n | 'boolean'\n | 'class_instance'\n | 'data_view'\n | 'date'\n | 'function'\n | 'html_all_collection'\n | 'html_element'\n | 'infinity'\n | 'iterator'\n | 'opaque_iterator'\n | 'nan'\n | 'null'\n | 'number'\n | 'object'\n | 'react_element'\n | 'regexp'\n | 'string'\n | 'symbol'\n | 'typed_array'\n | 'undefined'\n | 'unknown';\n\n/**\n * Get a enhanced/artificial type string based on the object instance\n */\nexport function getDataType(data: Object): DataType {\n if (data === null) {\n return 'null';\n } else if (data === undefined) {\n return 'undefined';\n }\n\n if (isElement(data)) {\n return 'react_element';\n }\n\n if (typeof HTMLElement !== 'undefined' && data instanceof HTMLElement) {\n return 'html_element';\n }\n\n const type = typeof data;\n switch (type) {\n case 'bigint':\n return 'bigint';\n case 'boolean':\n return 'boolean';\n case 'function':\n return 'function';\n case 'number':\n if (Number.isNaN(data)) {\n return 'nan';\n } else if (!Number.isFinite(data)) {\n return 'infinity';\n } else {\n return 'number';\n }\n case 'object':\n if (isArray(data)) {\n return 'array';\n } else if (ArrayBuffer.isView(data)) {\n return hasOwnProperty.call(data.constructor, 'BYTES_PER_ELEMENT')\n ? 'typed_array'\n : 'data_view';\n } else if (data.constructor && data.constructor.name === 'ArrayBuffer') {\n // HACK This ArrayBuffer check is gross; is there a better way?\n // We could try to create a new DataView with the value.\n // If it doesn't error, we know it's an ArrayBuffer,\n // but this seems kind of awkward and expensive.\n return 'array_buffer';\n } else if (typeof data[Symbol.iterator] === 'function') {\n const iterator = data[Symbol.iterator]();\n if (!iterator) {\n // Proxies might break assumptoins about iterators.\n // See github.com/facebook/react/issues/21654\n } else {\n return iterator === data ? 'opaque_iterator' : 'iterator';\n }\n } else if (data.constructor && data.constructor.name === 'RegExp') {\n return 'regexp';\n } else {\n // $FlowFixMe[method-unbinding]\n const toStringValue = Object.prototype.toString.call(data);\n if (toStringValue === '[object Date]') {\n return 'date';\n } else if (toStringValue === '[object HTMLAllCollection]') {\n return 'html_all_collection';\n }\n }\n\n if (!isPlainObject(data)) {\n return 'class_instance';\n }\n\n return 'object';\n case 'string':\n return 'string';\n case 'symbol':\n return 'symbol';\n case 'undefined':\n if (\n // $FlowFixMe[method-unbinding]\n Object.prototype.toString.call(data) === '[object HTMLAllCollection]'\n ) {\n return 'html_all_collection';\n }\n return 'undefined';\n default:\n return 'unknown';\n }\n}\n\nexport function getDisplayNameForReactElement(\n element: React$Element,\n): string | null {\n const elementType = typeOf(element);\n switch (elementType) {\n case ContextConsumer:\n return 'ContextConsumer';\n case ContextProvider:\n return 'ContextProvider';\n case ForwardRef:\n return 'ForwardRef';\n case Fragment:\n return 'Fragment';\n case Lazy:\n return 'Lazy';\n case Memo:\n return 'Memo';\n case Portal:\n return 'Portal';\n case Profiler:\n return 'Profiler';\n case StrictMode:\n return 'StrictMode';\n case Suspense:\n return 'Suspense';\n case SuspenseList:\n return 'SuspenseList';\n case TracingMarker:\n return 'TracingMarker';\n default:\n const {type} = element;\n if (typeof type === 'string') {\n return type;\n } else if (typeof type === 'function') {\n return getDisplayName(type, 'Anonymous');\n } else if (type != null) {\n return 'NotImplementedInDevtools';\n } else {\n return 'Element';\n }\n }\n}\n\nconst MAX_PREVIEW_STRING_LENGTH = 50;\n\nfunction truncateForDisplay(\n string: string,\n length: number = MAX_PREVIEW_STRING_LENGTH,\n) {\n if (string.length > length) {\n return string.slice(0, length) + '…';\n } else {\n return string;\n }\n}\n\n// Attempts to mimic Chrome's inline preview for values.\n// For example, the following value...\n// {\n// foo: 123,\n// bar: \"abc\",\n// baz: [true, false],\n// qux: { ab: 1, cd: 2 }\n// };\n//\n// Would show a preview of...\n// {foo: 123, bar: \"abc\", baz: Array(2), qux: {…}}\n//\n// And the following value...\n// [\n// 123,\n// \"abc\",\n// [true, false],\n// { foo: 123, bar: \"abc\" }\n// ];\n//\n// Would show a preview of...\n// [123, \"abc\", Array(2), {…}]\nexport function formatDataForPreview(\n data: any,\n showFormattedValue: boolean,\n): string {\n if (data != null && hasOwnProperty.call(data, meta.type)) {\n return showFormattedValue\n ? data[meta.preview_long]\n : data[meta.preview_short];\n }\n\n const type = getDataType(data);\n\n switch (type) {\n case 'html_element':\n return `<${truncateForDisplay(data.tagName.toLowerCase())} />`;\n case 'function':\n return truncateForDisplay(\n `ƒ ${typeof data.name === 'function' ? '' : data.name}() {}`,\n );\n case 'string':\n return `\"${data}\"`;\n case 'bigint':\n return truncateForDisplay(data.toString() + 'n');\n case 'regexp':\n return truncateForDisplay(data.toString());\n case 'symbol':\n return truncateForDisplay(data.toString());\n case 'react_element':\n return `<${truncateForDisplay(\n getDisplayNameForReactElement(data) || 'Unknown',\n )} />`;\n case 'array_buffer':\n return `ArrayBuffer(${data.byteLength})`;\n case 'data_view':\n return `DataView(${data.buffer.byteLength})`;\n case 'array':\n if (showFormattedValue) {\n let formatted = '';\n for (let i = 0; i < data.length; i++) {\n if (i > 0) {\n formatted += ', ';\n }\n formatted += formatDataForPreview(data[i], false);\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n return `[${truncateForDisplay(formatted)}]`;\n } else {\n const length = hasOwnProperty.call(data, meta.size)\n ? data[meta.size]\n : data.length;\n return `Array(${length})`;\n }\n case 'typed_array':\n const shortName = `${data.constructor.name}(${data.length})`;\n if (showFormattedValue) {\n let formatted = '';\n for (let i = 0; i < data.length; i++) {\n if (i > 0) {\n formatted += ', ';\n }\n formatted += data[i];\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n return `${shortName} [${truncateForDisplay(formatted)}]`;\n } else {\n return shortName;\n }\n case 'iterator':\n const name = data.constructor.name;\n\n if (showFormattedValue) {\n // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n const array = Array.from(data);\n\n let formatted = '';\n for (let i = 0; i < array.length; i++) {\n const entryOrEntries = array[i];\n\n if (i > 0) {\n formatted += ', ';\n }\n\n // TRICKY\n // Browsers display Maps and Sets differently.\n // To mimic their behavior, detect if we've been given an entries tuple.\n // Map(2) {\"abc\" => 123, \"def\" => 123}\n // Set(2) {\"abc\", 123}\n if (isArray(entryOrEntries)) {\n const key = formatDataForPreview(entryOrEntries[0], true);\n const value = formatDataForPreview(entryOrEntries[1], false);\n formatted += `${key} => ${value}`;\n } else {\n formatted += formatDataForPreview(entryOrEntries, false);\n }\n\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n\n return `${name}(${data.size}) {${truncateForDisplay(formatted)}}`;\n } else {\n return `${name}(${data.size})`;\n }\n case 'opaque_iterator': {\n return data[Symbol.toStringTag];\n }\n case 'date':\n return data.toString();\n case 'class_instance':\n return data.constructor.name;\n case 'object':\n if (showFormattedValue) {\n const keys = Array.from(getAllEnumerableKeys(data)).sort(alphaSortKeys);\n\n let formatted = '';\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (i > 0) {\n formatted += ', ';\n }\n formatted += `${key.toString()}: ${formatDataForPreview(\n data[key],\n false,\n )}`;\n if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n // Prevent doing a lot of unnecessary iteration...\n break;\n }\n }\n return `{${truncateForDisplay(formatted)}}`;\n } else {\n return '{…}';\n }\n case 'boolean':\n case 'number':\n case 'infinity':\n case 'nan':\n case 'null':\n case 'undefined':\n return data;\n default:\n try {\n return truncateForDisplay(String(data));\n } catch (error) {\n return 'unserializable';\n }\n }\n}\n\n// Basically checking that the object only has Object in its prototype chain\nexport const isPlainObject = (object: Object): boolean => {\n const objectPrototype = Object.getPrototypeOf(object);\n if (!objectPrototype) return true;\n\n const objectParentPrototype = Object.getPrototypeOf(objectPrototype);\n return !objectParentPrototype;\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n getDataType,\n getDisplayNameForReactElement,\n getAllEnumerableKeys,\n getInObject,\n formatDataForPreview,\n setInObject,\n} from './utils';\n\nimport type {DehydratedData} from './devtools/views/Components/types';\n\nexport const meta = {\n inspectable: (Symbol('inspectable'): symbol),\n inspected: (Symbol('inspected'): symbol),\n name: (Symbol('name'): symbol),\n preview_long: (Symbol('preview_long'): symbol),\n preview_short: (Symbol('preview_short'): symbol),\n readonly: (Symbol('readonly'): symbol),\n size: (Symbol('size'): symbol),\n type: (Symbol('type'): symbol),\n unserializable: (Symbol('unserializable'): symbol),\n};\n\nexport type Dehydrated = {\n inspectable: boolean,\n name: string | null,\n preview_long: string | null,\n preview_short: string | null,\n readonly?: boolean,\n size?: number,\n type: string,\n};\n\n// Typed arrays and other complex iteratable objects (e.g. Map, Set, ImmutableJS) need special handling.\n// These objects can't be serialized without losing type information,\n// so a \"Unserializable\" type wrapper is used (with meta-data keys) to send nested values-\n// while preserving the original type and name.\nexport type Unserializable = {\n name: string | null,\n preview_long: string | null,\n preview_short: string | null,\n readonly?: boolean,\n size?: number,\n type: string,\n unserializable: boolean,\n [string | number]: any,\n};\n\n// This threshold determines the depth at which the bridge \"dehydrates\" nested data.\n// Dehydration means that we don't serialize the data for e.g. postMessage or stringify,\n// unless the frontend explicitly requests it (e.g. a user clicks to expand a props object).\n//\n// Reducing this threshold will improve the speed of initial component inspection,\n// but may decrease the responsiveness of expanding objects/arrays to inspect further.\nconst LEVEL_THRESHOLD = 2;\n\n/**\n * Generate the dehydrated metadata for complex object instances\n */\nfunction createDehydrated(\n type: string,\n inspectable: boolean,\n data: Object,\n cleaned: Array>,\n path: Array,\n): Dehydrated {\n cleaned.push(path);\n\n const dehydrated: Dehydrated = {\n inspectable,\n type,\n preview_long: formatDataForPreview(data, true),\n preview_short: formatDataForPreview(data, false),\n name:\n !data.constructor || data.constructor.name === 'Object'\n ? ''\n : data.constructor.name,\n };\n\n if (type === 'array' || type === 'typed_array') {\n dehydrated.size = data.length;\n } else if (type === 'object') {\n dehydrated.size = Object.keys(data).length;\n }\n\n if (type === 'iterator' || type === 'typed_array') {\n dehydrated.readonly = true;\n }\n\n return dehydrated;\n}\n\n/**\n * Strip out complex data (instances, functions, and data nested > LEVEL_THRESHOLD levels deep).\n * The paths of the stripped out objects are appended to the `cleaned` list.\n * On the other side of the barrier, the cleaned list is used to \"re-hydrate\" the cleaned representation into\n * an object with symbols as attributes, so that a sanitized object can be distinguished from a normal object.\n *\n * Input: {\"some\": {\"attr\": fn()}, \"other\": AnInstance}\n * Output: {\n * \"some\": {\n * \"attr\": {\"name\": the fn.name, type: \"function\"}\n * },\n * \"other\": {\n * \"name\": \"AnInstance\",\n * \"type\": \"object\",\n * },\n * }\n * and cleaned = [[\"some\", \"attr\"], [\"other\"]]\n */\nexport function dehydrate(\n data: Object,\n cleaned: Array>,\n unserializable: Array>,\n path: Array,\n isPathAllowed: (path: Array) => boolean,\n level?: number = 0,\n): $PropertyType {\n const type = getDataType(data);\n\n let isPathAllowedCheck;\n\n switch (type) {\n case 'html_element':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.tagName,\n type,\n };\n\n case 'function':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name:\n typeof data.name === 'function' || !data.name\n ? 'function'\n : data.name,\n type,\n };\n\n case 'string':\n isPathAllowedCheck = isPathAllowed(path);\n if (isPathAllowedCheck) {\n return data;\n } else {\n return data.length <= 500 ? data : data.slice(0, 500) + '...';\n }\n\n case 'bigint':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type,\n };\n\n case 'symbol':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type,\n };\n\n // React Elements aren't very inspector-friendly,\n // and often contain private fields or circular references.\n case 'react_element':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: getDisplayNameForReactElement(data) || 'Unknown',\n type,\n };\n\n // ArrayBuffers error if you try to inspect them.\n case 'array_buffer':\n case 'data_view':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: type === 'data_view' ? 'DataView' : 'ArrayBuffer',\n size: data.byteLength,\n type,\n };\n\n case 'array':\n isPathAllowedCheck = isPathAllowed(path);\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n }\n return data.map((item, i) =>\n dehydrate(\n item,\n cleaned,\n unserializable,\n path.concat([i]),\n isPathAllowed,\n isPathAllowedCheck ? 1 : level + 1,\n ),\n );\n\n case 'html_all_collection':\n case 'typed_array':\n case 'iterator':\n isPathAllowedCheck = isPathAllowed(path);\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n } else {\n const unserializableValue: Unserializable = {\n unserializable: true,\n type: type,\n readonly: true,\n size: type === 'typed_array' ? data.length : undefined,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name:\n !data.constructor || data.constructor.name === 'Object'\n ? ''\n : data.constructor.name,\n };\n\n // TRICKY\n // Don't use [...spread] syntax for this purpose.\n // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n // Other types (e.g. typed arrays, Sets) will not spread correctly.\n Array.from(data).forEach(\n (item, i) =>\n (unserializableValue[i] = dehydrate(\n item,\n cleaned,\n unserializable,\n path.concat([i]),\n isPathAllowed,\n isPathAllowedCheck ? 1 : level + 1,\n )),\n );\n\n unserializable.push(path);\n\n return unserializableValue;\n }\n\n case 'opaque_iterator':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data[Symbol.toStringTag],\n type,\n };\n\n case 'date':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type,\n };\n\n case 'regexp':\n cleaned.push(path);\n return {\n inspectable: false,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.toString(),\n type,\n };\n\n case 'object':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n } else {\n const object: {\n [string]: $PropertyType,\n } = {};\n getAllEnumerableKeys(data).forEach(key => {\n const name = key.toString();\n object[name] = dehydrate(\n data[key],\n cleaned,\n unserializable,\n path.concat([name]),\n isPathAllowed,\n isPathAllowedCheck ? 1 : level + 1,\n );\n });\n return object;\n }\n\n case 'class_instance':\n isPathAllowedCheck = isPathAllowed(path);\n\n if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n }\n\n const value: Unserializable = {\n unserializable: true,\n type,\n readonly: true,\n preview_short: formatDataForPreview(data, false),\n preview_long: formatDataForPreview(data, true),\n name: data.constructor.name,\n };\n\n getAllEnumerableKeys(data).forEach(key => {\n const keyAsString = key.toString();\n\n value[keyAsString] = dehydrate(\n data[key],\n cleaned,\n unserializable,\n path.concat([keyAsString]),\n isPathAllowed,\n isPathAllowedCheck ? 1 : level + 1,\n );\n });\n\n unserializable.push(path);\n\n return value;\n\n case 'infinity':\n case 'nan':\n case 'undefined':\n // Some values are lossy when sent through a WebSocket.\n // We dehydrate+rehydrate them to preserve their type.\n cleaned.push(path);\n return {type};\n\n default:\n return data;\n }\n}\n\nexport function fillInPath(\n object: Object,\n data: DehydratedData,\n path: Array,\n value: any,\n) {\n const target = getInObject(object, path);\n if (target != null) {\n if (!target[meta.unserializable]) {\n delete target[meta.inspectable];\n delete target[meta.inspected];\n delete target[meta.name];\n delete target[meta.preview_long];\n delete target[meta.preview_short];\n delete target[meta.readonly];\n delete target[meta.size];\n delete target[meta.type];\n }\n }\n\n if (value !== null && data.unserializable.length > 0) {\n const unserializablePath = data.unserializable[0];\n let isMatch = unserializablePath.length === path.length;\n for (let i = 0; i < path.length; i++) {\n if (path[i] !== unserializablePath[i]) {\n isMatch = false;\n break;\n }\n }\n if (isMatch) {\n upgradeUnserializable(value, value);\n }\n }\n\n setInObject(object, path, value);\n}\n\nexport function hydrate(\n object: any,\n cleaned: Array>,\n unserializable: Array>,\n): Object {\n cleaned.forEach((path: Array) => {\n const length = path.length;\n const last = path[length - 1];\n const parent = getInObject(object, path.slice(0, length - 1));\n if (!parent || !parent.hasOwnProperty(last)) {\n return;\n }\n\n const value = parent[last];\n\n if (!value) {\n return;\n } else if (value.type === 'infinity') {\n parent[last] = Infinity;\n } else if (value.type === 'nan') {\n parent[last] = NaN;\n } else if (value.type === 'undefined') {\n parent[last] = undefined;\n } else {\n // Replace the string keys with Symbols so they're non-enumerable.\n const replaced: {[key: symbol]: boolean | string, ...} = {};\n replaced[meta.inspectable] = !!value.inspectable;\n replaced[meta.inspected] = false;\n replaced[meta.name] = value.name;\n replaced[meta.preview_long] = value.preview_long;\n replaced[meta.preview_short] = value.preview_short;\n replaced[meta.size] = value.size;\n replaced[meta.readonly] = !!value.readonly;\n replaced[meta.type] = value.type;\n\n parent[last] = replaced;\n }\n });\n unserializable.forEach((path: Array) => {\n const length = path.length;\n const last = path[length - 1];\n const parent = getInObject(object, path.slice(0, length - 1));\n if (!parent || !parent.hasOwnProperty(last)) {\n return;\n }\n\n const node = parent[last];\n\n const replacement = {\n ...node,\n };\n\n upgradeUnserializable(replacement, node);\n\n parent[last] = replacement;\n });\n return object;\n}\n\nfunction upgradeUnserializable(destination: Object, source: Object) {\n Object.defineProperties(destination, {\n // $FlowFixMe[invalid-computed-prop]\n [meta.inspected]: {\n configurable: true,\n enumerable: false,\n value: !!source.inspected,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.name]: {\n configurable: true,\n enumerable: false,\n value: source.name,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.preview_long]: {\n configurable: true,\n enumerable: false,\n value: source.preview_long,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.preview_short]: {\n configurable: true,\n enumerable: false,\n value: source.preview_short,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.size]: {\n configurable: true,\n enumerable: false,\n value: source.size,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.readonly]: {\n configurable: true,\n enumerable: false,\n value: !!source.readonly,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.type]: {\n configurable: true,\n enumerable: false,\n value: source.type,\n },\n // $FlowFixMe[invalid-computed-prop]\n [meta.unserializable]: {\n configurable: true,\n enumerable: false,\n value: !!source.unserializable,\n },\n });\n\n delete destination.inspected;\n delete destination.name;\n delete destination.preview_long;\n delete destination.preview_short;\n delete destination.size;\n delete destination.readonly;\n delete destination.type;\n delete destination.unserializable;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\ndeclare function isArray(a: mixed): boolean %checks(Array.isArray(a));\n\nconst isArrayImpl = Array.isArray;\n\n// eslint-disable-next-line no-redeclare\nfunction isArray(a: mixed): boolean {\n return isArrayImpl(a);\n}\n\nexport default isArray;\n","/**\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {compareVersions} from 'compare-versions';\nimport {dehydrate} from '../hydration';\nimport isArray from 'shared/isArray';\n\nimport type {DehydratedData} from 'react-devtools-shared/src/devtools/views/Components/types';\n\n// TODO: update this to the first React version that has a corresponding DevTools backend\nconst FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER = '999.9.9';\nexport function hasAssignedBackend(version?: string): boolean {\n if (version == null || version === '') {\n return false;\n }\n return gte(version, FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER);\n}\n\nexport function cleanForBridge(\n data: Object | null,\n isPathAllowed: (path: Array) => boolean,\n path: Array = [],\n): DehydratedData | null {\n if (data !== null) {\n const cleanedPaths: Array> = [];\n const unserializablePaths: Array> = [];\n const cleanedData = dehydrate(\n data,\n cleanedPaths,\n unserializablePaths,\n path,\n isPathAllowed,\n );\n\n return {\n data: cleanedData,\n cleaned: cleanedPaths,\n unserializable: unserializablePaths,\n };\n } else {\n return null;\n }\n}\n\nexport function copyWithDelete(\n obj: Object | Array,\n path: Array,\n index: number = 0,\n): Object | Array {\n const key = path[index];\n const updated = isArray(obj) ? obj.slice() : {...obj};\n if (index + 1 === path.length) {\n if (isArray(updated)) {\n updated.splice(((key: any): number), 1);\n } else {\n delete updated[key];\n }\n } else {\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[key] = copyWithDelete(obj[key], path, index + 1);\n }\n return updated;\n}\n\n// This function expects paths to be the same except for the final value.\n// e.g. ['path', 'to', 'foo'] and ['path', 'to', 'bar']\nexport function copyWithRename(\n obj: Object | Array,\n oldPath: Array,\n newPath: Array,\n index: number = 0,\n): Object | Array {\n const oldKey = oldPath[index];\n const updated = isArray(obj) ? obj.slice() : {...obj};\n if (index + 1 === oldPath.length) {\n const newKey = newPath[index];\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[newKey] = updated[oldKey];\n if (isArray(updated)) {\n updated.splice(((oldKey: any): number), 1);\n } else {\n delete updated[oldKey];\n }\n } else {\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[oldKey] = copyWithRename(obj[oldKey], oldPath, newPath, index + 1);\n }\n return updated;\n}\n\nexport function copyWithSet(\n obj: Object | Array,\n path: Array,\n value: any,\n index: number = 0,\n): Object | Array {\n if (index >= path.length) {\n return value;\n }\n const key = path[index];\n const updated = isArray(obj) ? obj.slice() : {...obj};\n // $FlowFixMe[incompatible-use] number or string is fine here\n updated[key] = copyWithSet(obj[key], path, value, index + 1);\n return updated;\n}\n\nexport function getEffectDurations(root: Object): {\n effectDuration: any | null,\n passiveEffectDuration: any | null,\n} {\n // Profiling durations are only available for certain builds.\n // If available, they'll be stored on the HostRoot.\n let effectDuration = null;\n let passiveEffectDuration = null;\n const hostRoot = root.current;\n if (hostRoot != null) {\n const stateNode = hostRoot.stateNode;\n if (stateNode != null) {\n effectDuration =\n stateNode.effectDuration != null ? stateNode.effectDuration : null;\n passiveEffectDuration =\n stateNode.passiveEffectDuration != null\n ? stateNode.passiveEffectDuration\n : null;\n }\n }\n return {effectDuration, passiveEffectDuration};\n}\n\nexport function serializeToString(data: any): string {\n if (data === undefined) {\n return 'undefined';\n }\n\n const cache = new Set();\n // Use a custom replacer function to protect against circular references.\n return JSON.stringify(\n data,\n (key, value) => {\n if (typeof value === 'object' && value !== null) {\n if (cache.has(value)) {\n return;\n }\n cache.add(value);\n }\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n },\n 2,\n );\n}\n\n// Formats an array of args with a style for console methods, using\n// the following algorithm:\n// 1. The first param is a string that contains %c\n// - Bail out and return the args without modifying the styles.\n// We don't want to affect styles that the developer deliberately set.\n// 2. The first param is a string that doesn't contain %c but contains\n// string formatting\n// - [`%c${args[0]}`, style, ...args.slice(1)]\n// - Note: we assume that the string formatting that the developer uses\n// is correct.\n// 3. The first param is a string that doesn't contain string formatting\n// OR is not a string\n// - Create a formatting string where:\n// boolean, string, symbol -> %s\n// number -> %f OR %i depending on if it's an int or float\n// default -> %o\nexport function formatWithStyles(\n inputArgs: $ReadOnlyArray,\n style?: string,\n): $ReadOnlyArray {\n if (\n inputArgs === undefined ||\n inputArgs === null ||\n inputArgs.length === 0 ||\n // Matches any of %c but not %%c\n (typeof inputArgs[0] === 'string' && inputArgs[0].match(/([^%]|^)(%c)/g)) ||\n style === undefined\n ) {\n return inputArgs;\n }\n\n // Matches any of %(o|O|d|i|s|f), but not %%(o|O|d|i|s|f)\n const REGEXP = /([^%]|^)((%%)*)(%([oOdisf]))/g;\n if (typeof inputArgs[0] === 'string' && inputArgs[0].match(REGEXP)) {\n return [`%c${inputArgs[0]}`, style, ...inputArgs.slice(1)];\n } else {\n const firstArg = inputArgs.reduce((formatStr, elem, i) => {\n if (i > 0) {\n formatStr += ' ';\n }\n switch (typeof elem) {\n case 'string':\n case 'boolean':\n case 'symbol':\n return (formatStr += '%s');\n case 'number':\n const formatting = Number.isInteger(elem) ? '%i' : '%f';\n return (formatStr += formatting);\n default:\n return (formatStr += '%o');\n }\n }, '%c');\n return [firstArg, style, ...inputArgs];\n }\n}\n\n// based on https://github.com/tmpfs/format-util/blob/0e62d430efb0a1c51448709abd3e2406c14d8401/format.js#L1\n// based on https://developer.mozilla.org/en-US/docs/Web/API/console#Using_string_substitutions\n// Implements s, d, i and f placeholders\n// NOTE: KEEP IN SYNC with src/hook.js\nexport function format(\n maybeMessage: any,\n ...inputArgs: $ReadOnlyArray\n): string {\n const args = inputArgs.slice();\n\n let formatted: string = String(maybeMessage);\n\n // If the first argument is a string, check for substitutions.\n if (typeof maybeMessage === 'string') {\n if (args.length) {\n const REGEXP = /(%?)(%([jds]))/g;\n\n formatted = formatted.replace(REGEXP, (match, escaped, ptn, flag) => {\n let arg = args.shift();\n switch (flag) {\n case 's':\n arg += '';\n break;\n case 'd':\n case 'i':\n arg = parseInt(arg, 10).toString();\n break;\n case 'f':\n arg = parseFloat(arg).toString();\n break;\n }\n if (!escaped) {\n return arg;\n }\n args.unshift(arg);\n return match;\n });\n }\n }\n\n // Arguments that remain after formatting.\n if (args.length) {\n for (let i = 0; i < args.length; i++) {\n formatted += ' ' + String(args[i]);\n }\n }\n\n // Update escaped %% values.\n formatted = formatted.replace(/%{2,2}/g, '%');\n\n return String(formatted);\n}\n\nexport function isSynchronousXHRSupported(): boolean {\n return !!(\n window.document &&\n window.document.featurePolicy &&\n window.document.featurePolicy.allowsFeature('sync-xhr')\n );\n}\n\nexport function gt(a: string = '', b: string = ''): boolean {\n return compareVersions(a, b) === 1;\n}\n\nexport function gte(a: string = '', b: string = ''): boolean {\n return compareVersions(a, b) > -1;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This list should be kept updated to reflect additions to 'shared/ReactSymbols'.\n// DevTools can't import symbols from 'shared/ReactSymbols' directly for two reasons:\n// 1. DevTools requires symbols which may have been deleted in more recent versions (e.g. concurrent mode)\n// 2. DevTools must support both Symbol and numeric forms of each symbol;\n// Since e.g. standalone DevTools runs in a separate process, it can't rely on its own ES capabilities.\n\nexport const CONCURRENT_MODE_NUMBER = 0xeacf;\nexport const CONCURRENT_MODE_SYMBOL_STRING = 'Symbol(react.concurrent_mode)';\n\nexport const CONTEXT_NUMBER = 0xeace;\nexport const CONTEXT_SYMBOL_STRING = 'Symbol(react.context)';\n\nexport const SERVER_CONTEXT_SYMBOL_STRING = 'Symbol(react.server_context)';\n\nexport const DEPRECATED_ASYNC_MODE_SYMBOL_STRING = 'Symbol(react.async_mode)';\n\nexport const ELEMENT_NUMBER = 0xeac7;\nexport const ELEMENT_SYMBOL_STRING = 'Symbol(react.element)';\n\nexport const DEBUG_TRACING_MODE_NUMBER = 0xeae1;\nexport const DEBUG_TRACING_MODE_SYMBOL_STRING =\n 'Symbol(react.debug_trace_mode)';\n\nexport const FORWARD_REF_NUMBER = 0xead0;\nexport const FORWARD_REF_SYMBOL_STRING = 'Symbol(react.forward_ref)';\n\nexport const FRAGMENT_NUMBER = 0xeacb;\nexport const FRAGMENT_SYMBOL_STRING = 'Symbol(react.fragment)';\n\nexport const LAZY_NUMBER = 0xead4;\nexport const LAZY_SYMBOL_STRING = 'Symbol(react.lazy)';\n\nexport const MEMO_NUMBER = 0xead3;\nexport const MEMO_SYMBOL_STRING = 'Symbol(react.memo)';\n\nexport const PORTAL_NUMBER = 0xeaca;\nexport const PORTAL_SYMBOL_STRING = 'Symbol(react.portal)';\n\nexport const PROFILER_NUMBER = 0xead2;\nexport const PROFILER_SYMBOL_STRING = 'Symbol(react.profiler)';\n\nexport const PROVIDER_NUMBER = 0xeacd;\nexport const PROVIDER_SYMBOL_STRING = 'Symbol(react.provider)';\n\nexport const SCOPE_NUMBER = 0xead7;\nexport const SCOPE_SYMBOL_STRING = 'Symbol(react.scope)';\n\nexport const STRICT_MODE_NUMBER = 0xeacc;\nexport const STRICT_MODE_SYMBOL_STRING = 'Symbol(react.strict_mode)';\n\nexport const SUSPENSE_NUMBER = 0xead1;\nexport const SUSPENSE_SYMBOL_STRING = 'Symbol(react.suspense)';\n\nexport const SUSPENSE_LIST_NUMBER = 0xead8;\nexport const SUSPENSE_LIST_SYMBOL_STRING = 'Symbol(react.suspense_list)';\n\nexport const SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED_SYMBOL_STRING =\n 'Symbol(react.server_context.defaultValue)';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n/************************************************************************\n * This file is forked between different DevTools implementations.\n * It should never be imported directly!\n * It should always be imported from \"react-devtools-feature-flags\".\n ************************************************************************/\n\nexport const consoleManagedByDevToolsDuringStrictMode = false;\nexport const enableLogger = false;\nexport const enableStyleXFeatures = false;\nexport const isInternalFacebookBuild = false;\n\n/************************************************************************\n * Do not edit the code below.\n * It ensures this fork exports the same types as the default flags file.\n ************************************************************************/\n\nimport typeof * as FeatureFlagsType from './DevToolsFeatureFlags.default';\nimport typeof * as ExportsType from './DevToolsFeatureFlags.core-oss';\n\n// Flow magic to verify the exports of this file match the original version.\n((((null: any): ExportsType): FeatureFlagsType): ExportsType);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst objectIs: (x: any, y: any) => boolean =\n // $FlowFixMe[method-unbinding]\n typeof Object.is === 'function' ? Object.is : is;\n\nexport default objectIs;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// $FlowFixMe[method-unbinding]\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport default hasOwnProperty;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {StyleXPlugin} from 'react-devtools-shared/src/types';\nimport isArray from 'react-devtools-shared/src/isArray';\n\nconst cachedStyleNameToValueMap: Map = new Map();\n\nexport function getStyleXData(data: any): StyleXPlugin {\n const sources = new Set();\n const resolvedStyles = {};\n\n crawlData(data, sources, resolvedStyles);\n\n return {\n sources: Array.from(sources).sort(),\n resolvedStyles,\n };\n}\n\nexport function crawlData(\n data: any,\n sources: Set,\n resolvedStyles: Object,\n): void {\n if (data == null) {\n return;\n }\n\n if (isArray(data)) {\n data.forEach(entry => {\n if (entry == null) {\n return;\n }\n\n if (isArray(entry)) {\n crawlData(entry, sources, resolvedStyles);\n } else {\n crawlObjectProperties(entry, sources, resolvedStyles);\n }\n });\n } else {\n crawlObjectProperties(data, sources, resolvedStyles);\n }\n\n resolvedStyles = Object.fromEntries(\n Object.entries(resolvedStyles).sort(),\n );\n}\n\nfunction crawlObjectProperties(\n entry: Object,\n sources: Set,\n resolvedStyles: Object,\n): void {\n const keys = Object.keys(entry);\n keys.forEach(key => {\n const value = entry[key];\n if (typeof value === 'string') {\n if (key === value) {\n // Special case; this key is the name of the style's source/file/module.\n sources.add(key);\n } else {\n const propertyValue = getPropertyValueForStyleName(value);\n if (propertyValue != null) {\n resolvedStyles[key] = propertyValue;\n }\n }\n } else {\n const nestedStyle = {};\n resolvedStyles[key] = nestedStyle;\n crawlData([value], sources, nestedStyle);\n }\n });\n}\n\nfunction getPropertyValueForStyleName(styleName: string): string | null {\n if (cachedStyleNameToValueMap.has(styleName)) {\n return ((cachedStyleNameToValueMap.get(styleName): any): string);\n }\n\n for (\n let styleSheetIndex = 0;\n styleSheetIndex < document.styleSheets.length;\n styleSheetIndex++\n ) {\n const styleSheet = ((document.styleSheets[\n styleSheetIndex\n ]: any): CSSStyleSheet);\n let rules: CSSRuleList | null = null;\n // this might throw if CORS rules are enforced https://www.w3.org/TR/cssom-1/#the-cssstylesheet-interface\n try {\n rules = styleSheet.cssRules;\n } catch (_e) {\n continue;\n }\n\n for (let ruleIndex = 0; ruleIndex < rules.length; ruleIndex++) {\n if (!(rules[ruleIndex] instanceof CSSStyleRule)) {\n continue;\n }\n const rule = ((rules[ruleIndex]: any): CSSStyleRule);\n const {cssText, selectorText, style} = rule;\n\n if (selectorText != null) {\n if (selectorText.startsWith(`.${styleName}`)) {\n const match = cssText.match(/{ *([a-z\\-]+):/);\n if (match !== null) {\n const property = match[1];\n const value = style.getPropertyValue(property);\n\n cachedStyleNameToValueMap.set(styleName, value);\n\n return value;\n } else {\n return null;\n }\n }\n }\n }\n }\n\n return null;\n}\n","export const CHANGE_LOG_URL =\n 'https://github.com/facebook/react/blob/main/packages/react-devtools/CHANGELOG.md';\n\nexport const UNSUPPORTED_VERSION_URL =\n 'https://reactjs.org/blog/2019/08/15/new-react-devtools.html#how-do-i-get-the-old-version-back';\n\nexport const REACT_DEVTOOLS_WORKPLACE_URL =\n 'https://fburl.com/react-devtools-workplace-group';\n\nimport type {\n Theme,\n DisplayDensity,\n} from './devtools/views/Settings/SettingsContext';\n\nexport const THEME_STYLES: {[style: Theme | DisplayDensity]: any, ...} = {\n light: {\n '--color-attribute-name': '#ef6632',\n '--color-attribute-name-not-editable': '#23272f',\n '--color-attribute-name-inverted': 'rgba(255, 255, 255, 0.7)',\n '--color-attribute-value': '#1a1aa6',\n '--color-attribute-value-inverted': '#ffffff',\n '--color-attribute-editable-value': '#1a1aa6',\n '--color-background': '#ffffff',\n '--color-background-hover': 'rgba(0, 136, 250, 0.1)',\n '--color-background-inactive': '#e5e5e5',\n '--color-background-invalid': '#fff0f0',\n '--color-background-selected': '#0088fa',\n '--color-button-background': '#ffffff',\n '--color-button-background-focus': '#ededed',\n '--color-button': '#5f6673',\n '--color-button-disabled': '#cfd1d5',\n '--color-button-active': '#0088fa',\n '--color-button-focus': '#23272f',\n '--color-button-hover': '#23272f',\n '--color-border': '#eeeeee',\n '--color-commit-did-not-render-fill': '#cfd1d5',\n '--color-commit-did-not-render-fill-text': '#000000',\n '--color-commit-did-not-render-pattern': '#cfd1d5',\n '--color-commit-did-not-render-pattern-text': '#333333',\n '--color-commit-gradient-0': '#37afa9',\n '--color-commit-gradient-1': '#63b19e',\n '--color-commit-gradient-2': '#80b393',\n '--color-commit-gradient-3': '#97b488',\n '--color-commit-gradient-4': '#abb67d',\n '--color-commit-gradient-5': '#beb771',\n '--color-commit-gradient-6': '#cfb965',\n '--color-commit-gradient-7': '#dfba57',\n '--color-commit-gradient-8': '#efbb49',\n '--color-commit-gradient-9': '#febc38',\n '--color-commit-gradient-text': '#000000',\n '--color-component-name': '#6a51b2',\n '--color-component-name-inverted': '#ffffff',\n '--color-component-badge-background': 'rgba(0, 0, 0, 0.1)',\n '--color-component-badge-background-inverted': 'rgba(255, 255, 255, 0.25)',\n '--color-component-badge-count': '#777d88',\n '--color-component-badge-count-inverted': 'rgba(255, 255, 255, 0.7)',\n '--color-console-error-badge-text': '#ffffff',\n '--color-console-error-background': '#fff0f0',\n '--color-console-error-border': '#ffd6d6',\n '--color-console-error-icon': '#eb3941',\n '--color-console-error-text': '#fe2e31',\n '--color-console-warning-badge-text': '#000000',\n '--color-console-warning-background': '#fffbe5',\n '--color-console-warning-border': '#fff5c1',\n '--color-console-warning-icon': '#f4bd00',\n '--color-console-warning-text': '#64460c',\n '--color-context-background': 'rgba(0,0,0,.9)',\n '--color-context-background-hover': 'rgba(255, 255, 255, 0.1)',\n '--color-context-background-selected': '#178fb9',\n '--color-context-border': '#3d424a',\n '--color-context-text': '#ffffff',\n '--color-context-text-selected': '#ffffff',\n '--color-dim': '#777d88',\n '--color-dimmer': '#cfd1d5',\n '--color-dimmest': '#eff0f1',\n '--color-error-background': 'hsl(0, 100%, 97%)',\n '--color-error-border': 'hsl(0, 100%, 92%)',\n '--color-error-text': '#ff0000',\n '--color-expand-collapse-toggle': '#777d88',\n '--color-link': '#0000ff',\n '--color-modal-background': 'rgba(255, 255, 255, 0.75)',\n '--color-bridge-version-npm-background': '#eff0f1',\n '--color-bridge-version-npm-text': '#000000',\n '--color-bridge-version-number': '#0088fa',\n '--color-primitive-hook-badge-background': '#e5e5e5',\n '--color-primitive-hook-badge-text': '#5f6673',\n '--color-record-active': '#fc3a4b',\n '--color-record-hover': '#3578e5',\n '--color-record-inactive': '#0088fa',\n '--color-resize-bar': '#eeeeee',\n '--color-resize-bar-active': '#dcdcdc',\n '--color-resize-bar-border': '#d1d1d1',\n '--color-resize-bar-dot': '#333333',\n '--color-timeline-internal-module': '#d1d1d1',\n '--color-timeline-internal-module-hover': '#c9c9c9',\n '--color-timeline-internal-module-text': '#444',\n '--color-timeline-native-event': '#ccc',\n '--color-timeline-native-event-hover': '#aaa',\n '--color-timeline-network-primary': '#fcf3dc',\n '--color-timeline-network-primary-hover': '#f0e7d1',\n '--color-timeline-network-secondary': '#efc457',\n '--color-timeline-network-secondary-hover': '#e3ba52',\n '--color-timeline-priority-background': '#f6f6f6',\n '--color-timeline-priority-border': '#eeeeee',\n '--color-timeline-user-timing': '#c9cacd',\n '--color-timeline-user-timing-hover': '#93959a',\n '--color-timeline-react-idle': '#d3e5f6',\n '--color-timeline-react-idle-hover': '#c3d9ef',\n '--color-timeline-react-render': '#9fc3f3',\n '--color-timeline-react-render-hover': '#83afe9',\n '--color-timeline-react-render-text': '#11365e',\n '--color-timeline-react-commit': '#c88ff0',\n '--color-timeline-react-commit-hover': '#b281d6',\n '--color-timeline-react-commit-text': '#3e2c4a',\n '--color-timeline-react-layout-effects': '#b281d6',\n '--color-timeline-react-layout-effects-hover': '#9d71bd',\n '--color-timeline-react-layout-effects-text': '#3e2c4a',\n '--color-timeline-react-passive-effects': '#b281d6',\n '--color-timeline-react-passive-effects-hover': '#9d71bd',\n '--color-timeline-react-passive-effects-text': '#3e2c4a',\n '--color-timeline-react-schedule': '#9fc3f3',\n '--color-timeline-react-schedule-hover': '#2683E2',\n '--color-timeline-react-suspense-rejected': '#f1cc14',\n '--color-timeline-react-suspense-rejected-hover': '#ffdf37',\n '--color-timeline-react-suspense-resolved': '#a6e59f',\n '--color-timeline-react-suspense-resolved-hover': '#89d281',\n '--color-timeline-react-suspense-unresolved': '#c9cacd',\n '--color-timeline-react-suspense-unresolved-hover': '#93959a',\n '--color-timeline-thrown-error': '#ee1638',\n '--color-timeline-thrown-error-hover': '#da1030',\n '--color-timeline-text-color': '#000000',\n '--color-timeline-text-dim-color': '#ccc',\n '--color-timeline-react-work-border': '#eeeeee',\n '--color-search-match': 'yellow',\n '--color-search-match-current': '#f7923b',\n '--color-selected-tree-highlight-active': 'rgba(0, 136, 250, 0.1)',\n '--color-selected-tree-highlight-inactive': 'rgba(0, 0, 0, 0.05)',\n '--color-scroll-caret': 'rgba(150, 150, 150, 0.5)',\n '--color-tab-selected-border': '#0088fa',\n '--color-text': '#000000',\n '--color-text-invalid': '#ff0000',\n '--color-text-selected': '#ffffff',\n '--color-toggle-background-invalid': '#fc3a4b',\n '--color-toggle-background-on': '#0088fa',\n '--color-toggle-background-off': '#cfd1d5',\n '--color-toggle-text': '#ffffff',\n '--color-warning-background': '#fb3655',\n '--color-warning-background-hover': '#f82042',\n '--color-warning-text-color': '#ffffff',\n '--color-warning-text-color-inverted': '#fd4d69',\n\n // The styles below should be kept in sync with 'root.css'\n // They are repeated there because they're used by e.g. tooltips or context menus\n // which get rendered outside of the DOM subtree (where normal theme/styles are written).\n '--color-scroll-thumb': '#c2c2c2',\n '--color-scroll-track': '#fafafa',\n '--color-tooltip-background': 'rgba(0, 0, 0, 0.9)',\n '--color-tooltip-text': '#ffffff',\n },\n dark: {\n '--color-attribute-name': '#9d87d2',\n '--color-attribute-name-not-editable': '#ededed',\n '--color-attribute-name-inverted': '#282828',\n '--color-attribute-value': '#cedae0',\n '--color-attribute-value-inverted': '#ffffff',\n '--color-attribute-editable-value': 'yellow',\n '--color-background': '#282c34',\n '--color-background-hover': 'rgba(255, 255, 255, 0.1)',\n '--color-background-inactive': '#3d424a',\n '--color-background-invalid': '#5c0000',\n '--color-background-selected': '#178fb9',\n '--color-button-background': '#282c34',\n '--color-button-background-focus': '#3d424a',\n '--color-button': '#afb3b9',\n '--color-button-active': '#61dafb',\n '--color-button-disabled': '#4f5766',\n '--color-button-focus': '#a2e9fc',\n '--color-button-hover': '#ededed',\n '--color-border': '#3d424a',\n '--color-commit-did-not-render-fill': '#777d88',\n '--color-commit-did-not-render-fill-text': '#000000',\n '--color-commit-did-not-render-pattern': '#666c77',\n '--color-commit-did-not-render-pattern-text': '#ffffff',\n '--color-commit-gradient-0': '#37afa9',\n '--color-commit-gradient-1': '#63b19e',\n '--color-commit-gradient-2': '#80b393',\n '--color-commit-gradient-3': '#97b488',\n '--color-commit-gradient-4': '#abb67d',\n '--color-commit-gradient-5': '#beb771',\n '--color-commit-gradient-6': '#cfb965',\n '--color-commit-gradient-7': '#dfba57',\n '--color-commit-gradient-8': '#efbb49',\n '--color-commit-gradient-9': '#febc38',\n '--color-commit-gradient-text': '#000000',\n '--color-component-name': '#61dafb',\n '--color-component-name-inverted': '#282828',\n '--color-component-badge-background': 'rgba(255, 255, 255, 0.25)',\n '--color-component-badge-background-inverted': 'rgba(0, 0, 0, 0.25)',\n '--color-component-badge-count': '#8f949d',\n '--color-component-badge-count-inverted': 'rgba(255, 255, 255, 0.7)',\n '--color-console-error-badge-text': '#000000',\n '--color-console-error-background': '#290000',\n '--color-console-error-border': '#5c0000',\n '--color-console-error-icon': '#eb3941',\n '--color-console-error-text': '#fc7f7f',\n '--color-console-warning-badge-text': '#000000',\n '--color-console-warning-background': '#332b00',\n '--color-console-warning-border': '#665500',\n '--color-console-warning-icon': '#f4bd00',\n '--color-console-warning-text': '#f5f2ed',\n '--color-context-background': 'rgba(255,255,255,.95)',\n '--color-context-background-hover': 'rgba(0, 136, 250, 0.1)',\n '--color-context-background-selected': '#0088fa',\n '--color-context-border': '#eeeeee',\n '--color-context-text': '#000000',\n '--color-context-text-selected': '#ffffff',\n '--color-dim': '#8f949d',\n '--color-dimmer': '#777d88',\n '--color-dimmest': '#4f5766',\n '--color-error-background': '#200',\n '--color-error-border': '#900',\n '--color-error-text': '#f55',\n '--color-expand-collapse-toggle': '#8f949d',\n '--color-link': '#61dafb',\n '--color-modal-background': 'rgba(0, 0, 0, 0.75)',\n '--color-bridge-version-npm-background': 'rgba(0, 0, 0, 0.25)',\n '--color-bridge-version-npm-text': '#ffffff',\n '--color-bridge-version-number': 'yellow',\n '--color-primitive-hook-badge-background': 'rgba(0, 0, 0, 0.25)',\n '--color-primitive-hook-badge-text': 'rgba(255, 255, 255, 0.7)',\n '--color-record-active': '#fc3a4b',\n '--color-record-hover': '#a2e9fc',\n '--color-record-inactive': '#61dafb',\n '--color-resize-bar': '#282c34',\n '--color-resize-bar-active': '#31363f',\n '--color-resize-bar-border': '#3d424a',\n '--color-resize-bar-dot': '#cfd1d5',\n '--color-timeline-internal-module': '#303542',\n '--color-timeline-internal-module-hover': '#363b4a',\n '--color-timeline-internal-module-text': '#7f8899',\n '--color-timeline-native-event': '#b2b2b2',\n '--color-timeline-native-event-hover': '#949494',\n '--color-timeline-network-primary': '#fcf3dc',\n '--color-timeline-network-primary-hover': '#e3dbc5',\n '--color-timeline-network-secondary': '#efc457',\n '--color-timeline-network-secondary-hover': '#d6af4d',\n '--color-timeline-priority-background': '#1d2129',\n '--color-timeline-priority-border': '#282c34',\n '--color-timeline-user-timing': '#c9cacd',\n '--color-timeline-user-timing-hover': '#93959a',\n '--color-timeline-react-idle': '#3d485b',\n '--color-timeline-react-idle-hover': '#465269',\n '--color-timeline-react-render': '#2683E2',\n '--color-timeline-react-render-hover': '#1a76d4',\n '--color-timeline-react-render-text': '#11365e',\n '--color-timeline-react-commit': '#731fad',\n '--color-timeline-react-commit-hover': '#611b94',\n '--color-timeline-react-commit-text': '#e5c1ff',\n '--color-timeline-react-layout-effects': '#611b94',\n '--color-timeline-react-layout-effects-hover': '#51167a',\n '--color-timeline-react-layout-effects-text': '#e5c1ff',\n '--color-timeline-react-passive-effects': '#611b94',\n '--color-timeline-react-passive-effects-hover': '#51167a',\n '--color-timeline-react-passive-effects-text': '#e5c1ff',\n '--color-timeline-react-schedule': '#2683E2',\n '--color-timeline-react-schedule-hover': '#1a76d4',\n '--color-timeline-react-suspense-rejected': '#f1cc14',\n '--color-timeline-react-suspense-rejected-hover': '#e4c00f',\n '--color-timeline-react-suspense-resolved': '#a6e59f',\n '--color-timeline-react-suspense-resolved-hover': '#89d281',\n '--color-timeline-react-suspense-unresolved': '#c9cacd',\n '--color-timeline-react-suspense-unresolved-hover': '#93959a',\n '--color-timeline-thrown-error': '#fb3655',\n '--color-timeline-thrown-error-hover': '#f82042',\n '--color-timeline-text-color': '#282c34',\n '--color-timeline-text-dim-color': '#555b66',\n '--color-timeline-react-work-border': '#3d424a',\n '--color-search-match': 'yellow',\n '--color-search-match-current': '#f7923b',\n '--color-selected-tree-highlight-active': 'rgba(23, 143, 185, 0.15)',\n '--color-selected-tree-highlight-inactive': 'rgba(255, 255, 255, 0.05)',\n '--color-scroll-caret': '#4f5766',\n '--color-shadow': 'rgba(0, 0, 0, 0.5)',\n '--color-tab-selected-border': '#178fb9',\n '--color-text': '#ffffff',\n '--color-text-invalid': '#ff8080',\n '--color-text-selected': '#ffffff',\n '--color-toggle-background-invalid': '#fc3a4b',\n '--color-toggle-background-on': '#178fb9',\n '--color-toggle-background-off': '#777d88',\n '--color-toggle-text': '#ffffff',\n '--color-warning-background': '#ee1638',\n '--color-warning-background-hover': '#da1030',\n '--color-warning-text-color': '#ffffff',\n '--color-warning-text-color-inverted': '#ee1638',\n\n // The styles below should be kept in sync with 'root.css'\n // They are repeated there because they're used by e.g. tooltips or context menus\n // which get rendered outside of the DOM subtree (where normal theme/styles are written).\n '--color-scroll-thumb': '#afb3b9',\n '--color-scroll-track': '#313640',\n '--color-tooltip-background': 'rgba(255, 255, 255, 0.95)',\n '--color-tooltip-text': '#000000',\n },\n compact: {\n '--font-size-monospace-small': '9px',\n '--font-size-monospace-normal': '11px',\n '--font-size-monospace-large': '15px',\n '--font-size-sans-small': '10px',\n '--font-size-sans-normal': '12px',\n '--font-size-sans-large': '14px',\n '--line-height-data': '18px',\n },\n comfortable: {\n '--font-size-monospace-small': '10px',\n '--font-size-monospace-normal': '13px',\n '--font-size-monospace-large': '17px',\n '--font-size-sans-small': '12px',\n '--font-size-sans-normal': '14px',\n '--font-size-sans-large': '16px',\n '--line-height-data': '22px',\n },\n};\n\n// HACK\n//\n// Sometimes the inline target is rendered before root styles are applied,\n// which would result in e.g. NaN itemSize being passed to react-window list.\nconst COMFORTABLE_LINE_HEIGHT: number = parseInt(\n THEME_STYLES.comfortable['--line-height-data'],\n 10,\n);\nconst COMPACT_LINE_HEIGHT: number = parseInt(\n THEME_STYLES.compact['--line-height-data'],\n 10,\n);\n\nexport {COMFORTABLE_LINE_HEIGHT, COMPACT_LINE_HEIGHT};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport {\n COMFORTABLE_LINE_HEIGHT,\n COMPACT_LINE_HEIGHT,\n} from 'react-devtools-shared/src/devtools/constants.js';\n\nexport const REACT_TOTAL_NUM_LANES = 31;\n\n// Increment this number any time a backwards breaking change is made to the profiler metadata.\nexport const SCHEDULING_PROFILER_VERSION = 1;\n\nexport const SNAPSHOT_MAX_HEIGHT = 60;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of shared/ConsolePatchingDev.\n// The shared console patching code is DEV-only.\n// We can't use it since DevTools only ships production builds.\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\n\nlet disabledDepth = 0;\nlet prevLog;\nlet prevInfo;\nlet prevWarn;\nlet prevError;\nlet prevGroup;\nlet prevGroupCollapsed;\nlet prevGroupEnd;\n\nfunction disabledLog() {}\ndisabledLog.__reactDisabledLog = true;\n\nexport function disableLogs(): void {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd;\n // https://github.com/facebook/react/issues/19099\n const props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true,\n };\n // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props,\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n disabledDepth++;\n}\n\nexport function reenableLogs(): void {\n disabledDepth--;\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n const props = {\n configurable: true,\n enumerable: true,\n writable: true,\n };\n // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n Object.defineProperties(console, {\n log: {...props, value: prevLog},\n info: {...props, value: prevInfo},\n warn: {...props, value: prevWarn},\n error: {...props, value: prevError},\n group: {...props, value: prevGroup},\n groupCollapsed: {...props, value: prevGroupCollapsed},\n groupEnd: {...props, value: prevGroupEnd},\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n if (disabledDepth < 0) {\n console.error(\n 'disabledDepth fell below zero. ' +\n 'This is a bug in React. Please file an issue.',\n );\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of ReactComponentStackFrame.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n\nimport type {LazyComponent} from 'react/src/ReactLazy';\nimport type {CurrentDispatcherRef} from './types';\n\nimport {\n FORWARD_REF_NUMBER,\n FORWARD_REF_SYMBOL_STRING,\n LAZY_NUMBER,\n LAZY_SYMBOL_STRING,\n MEMO_NUMBER,\n MEMO_SYMBOL_STRING,\n SUSPENSE_NUMBER,\n SUSPENSE_SYMBOL_STRING,\n SUSPENSE_LIST_NUMBER,\n SUSPENSE_LIST_SYMBOL_STRING,\n} from './ReactSymbols';\n\n// The shared console patching code is DEV-only.\n// We can't use it since DevTools only ships production builds.\nimport {disableLogs, reenableLogs} from './DevToolsConsolePatching';\n\nlet prefix;\nexport function describeBuiltInComponentFrame(\n name: string,\n ownerFn: void | null | Function,\n): string {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n const match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || '';\n }\n }\n // We use the prefix to ensure our stacks line up with native stack frames.\n return '\\n' + prefix + name;\n}\n\nlet reentry = false;\nlet componentFrameCache;\nif (__DEV__) {\n const PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap<$FlowFixMe, string>();\n}\n\nexport function describeNativeComponentFrame(\n fn: Function,\n construct: boolean,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n if (__DEV__) {\n const frame = componentFrameCache.get(fn);\n if (frame !== undefined) {\n return frame;\n }\n }\n\n let control;\n\n const previousPrepareStackTrace = Error.prepareStackTrace;\n // $FlowFixMe[incompatible-type] It does accept undefined.\n Error.prepareStackTrace = undefined;\n\n reentry = true;\n\n // Override the dispatcher so effects scheduled by this shallow render are thrown away.\n //\n // Note that unlike the code this was forked from (in ReactComponentStackFrame)\n // DevTools should override the dispatcher even when DevTools is compiled in production mode,\n // because the app itself may be in development mode and log errors/warnings.\n const previousDispatcher = currentDispatcherRef.current;\n currentDispatcherRef.current = null;\n disableLogs();\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n const Fake = function () {\n throw Error();\n };\n // $FlowFixMe[prop-missing]\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n },\n });\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n // $FlowFixMe[prop-missing] found when upgrading Flow\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n const sampleLines = sample.stack.split('\\n');\n const controlLines = control.stack.split('\\n');\n let s = sampleLines.length - 1;\n let c = controlLines.length - 1;\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--;\n // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n const frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n if (__DEV__) {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, frame);\n }\n }\n // Return the line we found.\n return frame;\n }\n } while (s >= 1 && c >= 0);\n }\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n\n currentDispatcherRef.current = previousDispatcher;\n reenableLogs();\n }\n // Fallback to just using the name if we couldn't make it throw.\n const name = fn ? fn.displayName || fn.name : '';\n const syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n if (__DEV__) {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n return syntheticFrame;\n}\n\nexport function describeClassComponentFrame(\n ctor: Function,\n ownerFn: void | null | Function,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n return describeNativeComponentFrame(ctor, true, currentDispatcherRef);\n}\n\nexport function describeFunctionComponentFrame(\n fn: Function,\n ownerFn: void | null | Function,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n return describeNativeComponentFrame(fn, false, currentDispatcherRef);\n}\n\nfunction shouldConstruct(Component: Function) {\n const prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nexport function describeUnknownElementTypeFrameInDEV(\n type: any,\n ownerFn: void | null | Function,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n if (!__DEV__) {\n return '';\n }\n if (type == null) {\n return '';\n }\n if (typeof type === 'function') {\n return describeNativeComponentFrame(\n type,\n shouldConstruct(type),\n currentDispatcherRef,\n );\n }\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type, ownerFn);\n }\n switch (type) {\n case SUSPENSE_NUMBER:\n case SUSPENSE_SYMBOL_STRING:\n return describeBuiltInComponentFrame('Suspense', ownerFn);\n case SUSPENSE_LIST_NUMBER:\n case SUSPENSE_LIST_SYMBOL_STRING:\n return describeBuiltInComponentFrame('SuspenseList', ownerFn);\n }\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case FORWARD_REF_NUMBER:\n case FORWARD_REF_SYMBOL_STRING:\n return describeFunctionComponentFrame(\n type.render,\n ownerFn,\n currentDispatcherRef,\n );\n case MEMO_NUMBER:\n case MEMO_SYMBOL_STRING:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(\n type.type,\n ownerFn,\n currentDispatcherRef,\n );\n case LAZY_NUMBER:\n case LAZY_SYMBOL_STRING: {\n const lazyComponent: LazyComponent = (type: any);\n const payload = lazyComponent._payload;\n const init = lazyComponent._init;\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(\n init(payload),\n ownerFn,\n currentDispatcherRef,\n );\n } catch (x) {}\n }\n }\n }\n return '';\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of ReactFiberComponentStack.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {CurrentDispatcherRef, WorkTagMap} from './types';\n\nimport {\n describeBuiltInComponentFrame,\n describeFunctionComponentFrame,\n describeClassComponentFrame,\n} from './DevToolsComponentStackFrame';\n\nexport function describeFiber(\n workTagMap: WorkTagMap,\n workInProgress: Fiber,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n const {\n HostComponent,\n LazyComponent,\n SuspenseComponent,\n SuspenseListComponent,\n FunctionComponent,\n IndeterminateComponent,\n SimpleMemoComponent,\n ForwardRef,\n ClassComponent,\n } = workTagMap;\n\n const owner: null | Function = __DEV__\n ? workInProgress._debugOwner\n ? workInProgress._debugOwner.type\n : null\n : null;\n switch (workInProgress.tag) {\n case HostComponent:\n return describeBuiltInComponentFrame(workInProgress.type, owner);\n case LazyComponent:\n return describeBuiltInComponentFrame('Lazy', owner);\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense', owner);\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList', owner);\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(\n workInProgress.type,\n owner,\n currentDispatcherRef,\n );\n case ForwardRef:\n return describeFunctionComponentFrame(\n workInProgress.type.render,\n owner,\n currentDispatcherRef,\n );\n case ClassComponent:\n return describeClassComponentFrame(\n workInProgress.type,\n owner,\n currentDispatcherRef,\n );\n default:\n return '';\n }\n}\n\nexport function getStackByFiberInDevAndProd(\n workTagMap: WorkTagMap,\n workInProgress: Fiber,\n currentDispatcherRef: CurrentDispatcherRef,\n): string {\n try {\n let info = '';\n let node: Fiber = workInProgress;\n do {\n info += describeFiber(workTagMap, node, currentDispatcherRef);\n // $FlowFixMe[incompatible-type] we bail out when we get a null\n node = node.return;\n } while (node);\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {\n Lane,\n Lanes,\n DevToolsProfilingHooks,\n WorkTagMap,\n CurrentDispatcherRef,\n} from 'react-devtools-shared/src/backend/types';\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {Wakeable} from 'shared/ReactTypes';\nimport type {\n BatchUID,\n InternalModuleSourceToRanges,\n LaneToLabelMap,\n ReactComponentMeasure,\n ReactLane,\n ReactMeasure,\n ReactMeasureType,\n ReactScheduleStateUpdateEvent,\n SchedulingEvent,\n SuspenseEvent,\n TimelineData,\n} from 'react-devtools-timeline/src/types';\n\nimport isArray from 'shared/isArray';\nimport {\n REACT_TOTAL_NUM_LANES,\n SCHEDULING_PROFILER_VERSION,\n} from 'react-devtools-timeline/src/constants';\nimport {describeFiber} from './DevToolsFiberComponentStack';\n\n// Add padding to the start/stop time of the profile.\n// This makes the UI nicer to use.\nconst TIME_OFFSET = 10;\n\nlet performanceTarget: Performance | null = null;\n\n// If performance exists and supports the subset of the User Timing API that we require.\nlet supportsUserTiming =\n typeof performance !== 'undefined' &&\n // $FlowFixMe[method-unbinding]\n typeof performance.mark === 'function' &&\n // $FlowFixMe[method-unbinding]\n typeof performance.clearMarks === 'function';\n\nlet supportsUserTimingV3 = false;\nif (supportsUserTiming) {\n const CHECK_V3_MARK = '__v3';\n const markOptions: {\n detail?: mixed,\n startTime?: number,\n } = {};\n Object.defineProperty(markOptions, 'startTime', {\n get: function () {\n supportsUserTimingV3 = true;\n return 0;\n },\n set: function () {},\n });\n\n try {\n performance.mark(CHECK_V3_MARK, markOptions);\n } catch (error) {\n // Ignore\n } finally {\n performance.clearMarks(CHECK_V3_MARK);\n }\n}\n\nif (supportsUserTimingV3) {\n performanceTarget = performance;\n}\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n // $FlowFixMe[method-unbinding]\n typeof performance === 'object' && typeof performance.now === 'function'\n ? () => performance.now()\n : () => Date.now();\n\n// Mocking the Performance Object (and User Timing APIs) for testing is fragile.\n// This API allows tests to directly override the User Timing APIs.\nexport function setPerformanceMock_ONLY_FOR_TESTING(\n performanceMock: Performance | null,\n) {\n performanceTarget = performanceMock;\n supportsUserTiming = performanceMock !== null;\n supportsUserTimingV3 = performanceMock !== null;\n}\n\nexport type GetTimelineData = () => TimelineData | null;\nexport type ToggleProfilingStatus = (value: boolean) => void;\n\ntype Response = {\n getTimelineData: GetTimelineData,\n profilingHooks: DevToolsProfilingHooks,\n toggleProfilingStatus: ToggleProfilingStatus,\n};\n\nexport function createProfilingHooks({\n getDisplayNameForFiber,\n getIsProfiling,\n getLaneLabelMap,\n workTagMap,\n currentDispatcherRef,\n reactVersion,\n}: {\n getDisplayNameForFiber: (fiber: Fiber) => string | null,\n getIsProfiling: () => boolean,\n getLaneLabelMap?: () => Map | null,\n currentDispatcherRef?: CurrentDispatcherRef,\n workTagMap: WorkTagMap,\n reactVersion: string,\n}): Response {\n let currentBatchUID: BatchUID = 0;\n let currentReactComponentMeasure: ReactComponentMeasure | null = null;\n let currentReactMeasuresStack: Array = [];\n let currentTimelineData: TimelineData | null = null;\n let currentFiberStacks: Map> = new Map();\n let isProfiling: boolean = false;\n let nextRenderShouldStartNewBatch: boolean = false;\n\n function getRelativeTime() {\n const currentTime = getCurrentTime();\n\n if (currentTimelineData) {\n if (currentTimelineData.startTime === 0) {\n currentTimelineData.startTime = currentTime - TIME_OFFSET;\n }\n\n return currentTime - currentTimelineData.startTime;\n }\n\n return 0;\n }\n\n function getInternalModuleRanges() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.getInternalModuleRanges ===\n 'function'\n ) {\n // Ask the DevTools hook for module ranges that may have been reported by the current renderer(s).\n // Don't do this eagerly like the laneToLabelMap,\n // because some modules might not yet have registered their boundaries when the renderer is injected.\n const ranges = __REACT_DEVTOOLS_GLOBAL_HOOK__.getInternalModuleRanges();\n\n // This check would not be required,\n // except that it's possible for things to override __REACT_DEVTOOLS_GLOBAL_HOOK__.\n if (isArray(ranges)) {\n return ranges;\n }\n }\n\n return null;\n }\n\n function getTimelineData(): TimelineData | null {\n return currentTimelineData;\n }\n\n function laneToLanesArray(lanes: Lane) {\n const lanesArray = [];\n\n let lane = 1;\n for (let index = 0; index < REACT_TOTAL_NUM_LANES; index++) {\n if (lane & lanes) {\n lanesArray.push(lane);\n }\n lane *= 2;\n }\n\n return lanesArray;\n }\n\n const laneToLabelMap: LaneToLabelMap | null =\n typeof getLaneLabelMap === 'function' ? getLaneLabelMap() : null;\n\n function markMetadata() {\n markAndClear(`--react-version-${reactVersion}`);\n markAndClear(`--profiler-version-${SCHEDULING_PROFILER_VERSION}`);\n\n const ranges = getInternalModuleRanges();\n if (ranges) {\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n if (isArray(range) && range.length === 2) {\n const [startStackFrame, stopStackFrame] = ranges[i];\n\n markAndClear(`--react-internal-module-start-${startStackFrame}`);\n markAndClear(`--react-internal-module-stop-${stopStackFrame}`);\n }\n }\n }\n\n if (laneToLabelMap != null) {\n const labels = Array.from(laneToLabelMap.values()).join(',');\n markAndClear(`--react-lane-labels-${labels}`);\n }\n }\n\n function markAndClear(markName: string) {\n // This method won't be called unless these functions are defined, so we can skip the extra typeof check.\n ((performanceTarget: any): Performance).mark(markName);\n ((performanceTarget: any): Performance).clearMarks(markName);\n }\n\n function recordReactMeasureStarted(\n type: ReactMeasureType,\n lanes: Lanes,\n ): void {\n // Decide what depth thi work should be rendered at, based on what's on the top of the stack.\n // It's okay to render over top of \"idle\" work but everything else should be on its own row.\n let depth = 0;\n if (currentReactMeasuresStack.length > 0) {\n const top =\n currentReactMeasuresStack[currentReactMeasuresStack.length - 1];\n depth = top.type === 'render-idle' ? top.depth : top.depth + 1;\n }\n\n const lanesArray = laneToLanesArray(lanes);\n\n const reactMeasure: ReactMeasure = {\n type,\n batchUID: currentBatchUID,\n depth,\n lanes: lanesArray,\n timestamp: getRelativeTime(),\n duration: 0,\n };\n\n currentReactMeasuresStack.push(reactMeasure);\n\n if (currentTimelineData) {\n const {batchUIDToMeasuresMap, laneToReactMeasureMap} =\n currentTimelineData;\n\n let reactMeasures = batchUIDToMeasuresMap.get(currentBatchUID);\n if (reactMeasures != null) {\n reactMeasures.push(reactMeasure);\n } else {\n batchUIDToMeasuresMap.set(currentBatchUID, [reactMeasure]);\n }\n\n lanesArray.forEach(lane => {\n reactMeasures = laneToReactMeasureMap.get(lane);\n if (reactMeasures) {\n reactMeasures.push(reactMeasure);\n }\n });\n }\n }\n\n function recordReactMeasureCompleted(type: ReactMeasureType): void {\n const currentTime = getRelativeTime();\n\n if (currentReactMeasuresStack.length === 0) {\n console.error(\n 'Unexpected type \"%s\" completed at %sms while currentReactMeasuresStack is empty.',\n type,\n currentTime,\n );\n // Ignore work \"completion\" user timing mark that doesn't complete anything\n return;\n }\n\n const top = currentReactMeasuresStack.pop();\n if (top.type !== type) {\n console.error(\n 'Unexpected type \"%s\" completed at %sms before \"%s\" completed.',\n type,\n currentTime,\n top.type,\n );\n }\n\n // $FlowFixMe[cannot-write] This property should not be writable outside of this function.\n top.duration = currentTime - top.timestamp;\n\n if (currentTimelineData) {\n currentTimelineData.duration = getRelativeTime() + TIME_OFFSET;\n }\n }\n\n function markCommitStarted(lanes: Lanes): void {\n if (isProfiling) {\n recordReactMeasureStarted('commit', lanes);\n\n // TODO (timeline) Re-think this approach to \"batching\"; I don't think it works for Suspense or pre-rendering.\n // This issue applies to the User Timing data also.\n nextRenderShouldStartNewBatch = true;\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--commit-start-${lanes}`);\n\n // Some metadata only needs to be logged once per session,\n // but if profiling information is being recorded via the Performance tab,\n // DevTools has no way of knowing when the recording starts.\n // Because of that, we log thie type of data periodically (once per commit).\n markMetadata();\n }\n }\n\n function markCommitStopped(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('commit');\n recordReactMeasureCompleted('render-idle');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--commit-stop');\n }\n }\n\n function markComponentRenderStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'render',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--component-render-start-${componentName}`);\n }\n }\n }\n\n function markComponentRenderStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-render-stop');\n }\n }\n\n function markComponentLayoutEffectMountStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'layout-effect-mount',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--component-layout-effect-mount-start-${componentName}`);\n }\n }\n }\n\n function markComponentLayoutEffectMountStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-layout-effect-mount-stop');\n }\n }\n\n function markComponentLayoutEffectUnmountStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'layout-effect-unmount',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\n `--component-layout-effect-unmount-start-${componentName}`,\n );\n }\n }\n }\n\n function markComponentLayoutEffectUnmountStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-layout-effect-unmount-stop');\n }\n }\n\n function markComponentPassiveEffectMountStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'passive-effect-mount',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--component-passive-effect-mount-start-${componentName}`);\n }\n }\n }\n\n function markComponentPassiveEffectMountStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-passive-effect-mount-stop');\n }\n }\n\n function markComponentPassiveEffectUnmountStarted(fiber: Fiber): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (isProfiling) {\n currentReactComponentMeasure = {\n componentName,\n duration: 0,\n timestamp: getRelativeTime(),\n type: 'passive-effect-unmount',\n warning: null,\n };\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\n `--component-passive-effect-unmount-start-${componentName}`,\n );\n }\n }\n }\n\n function markComponentPassiveEffectUnmountStopped(): void {\n if (isProfiling) {\n if (currentReactComponentMeasure) {\n if (currentTimelineData) {\n currentTimelineData.componentMeasures.push(\n currentReactComponentMeasure,\n );\n }\n\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentReactComponentMeasure.duration =\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n getRelativeTime() - currentReactComponentMeasure.timestamp;\n currentReactComponentMeasure = null;\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--component-passive-effect-unmount-stop');\n }\n }\n\n function markComponentErrored(\n fiber: Fiber,\n thrownValue: mixed,\n lanes: Lanes,\n ): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n const phase = fiber.alternate === null ? 'mount' : 'update';\n\n let message = '';\n if (\n thrownValue !== null &&\n typeof thrownValue === 'object' &&\n typeof thrownValue.message === 'string'\n ) {\n message = thrownValue.message;\n } else if (typeof thrownValue === 'string') {\n message = thrownValue;\n }\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n currentTimelineData.thrownErrors.push({\n componentName,\n message,\n phase,\n timestamp: getRelativeTime(),\n type: 'thrown-error',\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--error-${componentName}-${phase}-${message}`);\n }\n }\n }\n\n const PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n\n // $FlowFixMe[incompatible-type]: Flow cannot handle polymorphic WeakMaps\n const wakeableIDs: WeakMap = new PossiblyWeakMap();\n let wakeableID: number = 0;\n function getWakeableID(wakeable: Wakeable): number {\n if (!wakeableIDs.has(wakeable)) {\n wakeableIDs.set(wakeable, wakeableID++);\n }\n return ((wakeableIDs.get(wakeable): any): number);\n }\n\n function markComponentSuspended(\n fiber: Fiber,\n wakeable: Wakeable,\n lanes: Lanes,\n ): void {\n if (isProfiling || supportsUserTimingV3) {\n const eventType = wakeableIDs.has(wakeable) ? 'resuspend' : 'suspend';\n const id = getWakeableID(wakeable);\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n const phase = fiber.alternate === null ? 'mount' : 'update';\n\n // Following the non-standard fn.displayName convention,\n // frameworks like Relay may also annotate Promises with a displayName,\n // describing what operation/data the thrown Promise is related to.\n // When this is available we should pass it along to the Timeline.\n const displayName = (wakeable: any).displayName || '';\n\n let suspenseEvent: SuspenseEvent | null = null;\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n suspenseEvent = {\n componentName,\n depth: 0,\n duration: 0,\n id: `${id}`,\n phase,\n promiseName: displayName,\n resolution: 'unresolved',\n timestamp: getRelativeTime(),\n type: 'suspense',\n warning: null,\n };\n\n if (currentTimelineData) {\n currentTimelineData.suspenseEvents.push(suspenseEvent);\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(\n `--suspense-${eventType}-${id}-${componentName}-${phase}-${lanes}-${displayName}`,\n );\n }\n\n wakeable.then(\n () => {\n if (suspenseEvent) {\n suspenseEvent.duration =\n getRelativeTime() - suspenseEvent.timestamp;\n suspenseEvent.resolution = 'resolved';\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--suspense-resolved-${id}-${componentName}`);\n }\n },\n () => {\n if (suspenseEvent) {\n suspenseEvent.duration =\n getRelativeTime() - suspenseEvent.timestamp;\n suspenseEvent.resolution = 'rejected';\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--suspense-rejected-${id}-${componentName}`);\n }\n },\n );\n }\n }\n\n function markLayoutEffectsStarted(lanes: Lanes): void {\n if (isProfiling) {\n recordReactMeasureStarted('layout-effects', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--layout-effects-start-${lanes}`);\n }\n }\n\n function markLayoutEffectsStopped(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('layout-effects');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--layout-effects-stop');\n }\n }\n\n function markPassiveEffectsStarted(lanes: Lanes): void {\n if (isProfiling) {\n recordReactMeasureStarted('passive-effects', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--passive-effects-start-${lanes}`);\n }\n }\n\n function markPassiveEffectsStopped(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('passive-effects');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--passive-effects-stop');\n }\n }\n\n function markRenderStarted(lanes: Lanes): void {\n if (isProfiling) {\n if (nextRenderShouldStartNewBatch) {\n nextRenderShouldStartNewBatch = false;\n currentBatchUID++;\n }\n\n // If this is a new batch of work, wrap an \"idle\" measure around it.\n // Log it before the \"render\" measure to preserve the stack ordering.\n if (\n currentReactMeasuresStack.length === 0 ||\n currentReactMeasuresStack[currentReactMeasuresStack.length - 1].type !==\n 'render-idle'\n ) {\n recordReactMeasureStarted('render-idle', lanes);\n }\n\n recordReactMeasureStarted('render', lanes);\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--render-start-${lanes}`);\n }\n }\n\n function markRenderYielded(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('render');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--render-yield');\n }\n }\n\n function markRenderStopped(): void {\n if (isProfiling) {\n recordReactMeasureCompleted('render');\n }\n\n if (supportsUserTimingV3) {\n markAndClear('--render-stop');\n }\n }\n\n function markRenderScheduled(lane: Lane): void {\n if (isProfiling) {\n if (currentTimelineData) {\n currentTimelineData.schedulingEvents.push({\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-render',\n warning: null,\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--schedule-render-${lane}`);\n }\n }\n\n function markForceUpdateScheduled(fiber: Fiber, lane: Lane): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n currentTimelineData.schedulingEvents.push({\n componentName,\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-force-update',\n warning: null,\n });\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--schedule-forced-update-${lane}-${componentName}`);\n }\n }\n }\n\n function getParentFibers(fiber: Fiber): Array {\n const parents = [];\n let parent: null | Fiber = fiber;\n while (parent !== null) {\n parents.push(parent);\n parent = parent.return;\n }\n return parents;\n }\n\n function markStateUpdateScheduled(fiber: Fiber, lane: Lane): void {\n if (isProfiling || supportsUserTimingV3) {\n const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n if (isProfiling) {\n // TODO (timeline) Record and cache component stack\n if (currentTimelineData) {\n const event: ReactScheduleStateUpdateEvent = {\n componentName,\n // Store the parent fibers so we can post process\n // them after we finish profiling\n lanes: laneToLanesArray(lane),\n timestamp: getRelativeTime(),\n type: 'schedule-state-update',\n warning: null,\n };\n currentFiberStacks.set(event, getParentFibers(fiber));\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentTimelineData.schedulingEvents.push(event);\n }\n }\n\n if (supportsUserTimingV3) {\n markAndClear(`--schedule-state-update-${lane}-${componentName}`);\n }\n }\n }\n\n function toggleProfilingStatus(value: boolean) {\n if (isProfiling !== value) {\n isProfiling = value;\n\n if (isProfiling) {\n const internalModuleSourceToRanges: InternalModuleSourceToRanges =\n new Map();\n\n if (supportsUserTimingV3) {\n const ranges = getInternalModuleRanges();\n if (ranges) {\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n if (isArray(range) && range.length === 2) {\n const [startStackFrame, stopStackFrame] = ranges[i];\n\n markAndClear(\n `--react-internal-module-start-${startStackFrame}`,\n );\n markAndClear(`--react-internal-module-stop-${stopStackFrame}`);\n }\n }\n }\n }\n\n const laneToReactMeasureMap = new Map();\n let lane = 1;\n for (let index = 0; index < REACT_TOTAL_NUM_LANES; index++) {\n laneToReactMeasureMap.set(lane, []);\n lane *= 2;\n }\n\n currentBatchUID = 0;\n currentReactComponentMeasure = null;\n currentReactMeasuresStack = [];\n currentFiberStacks = new Map();\n currentTimelineData = {\n // Session wide metadata; only collected once.\n internalModuleSourceToRanges,\n laneToLabelMap: laneToLabelMap || new Map(),\n reactVersion,\n\n // Data logged by React during profiling session.\n componentMeasures: [],\n schedulingEvents: [],\n suspenseEvents: [],\n thrownErrors: [],\n\n // Data inferred based on what React logs.\n batchUIDToMeasuresMap: new Map(),\n duration: 0,\n laneToReactMeasureMap,\n startTime: 0,\n\n // Data only available in Chrome profiles.\n flamechart: [],\n nativeEvents: [],\n networkMeasures: [],\n otherUserTimingMarks: [],\n snapshots: [],\n snapshotHeight: 0,\n };\n nextRenderShouldStartNewBatch = true;\n } else {\n // Postprocess Profile data\n if (currentTimelineData !== null) {\n currentTimelineData.schedulingEvents.forEach(event => {\n if (event.type === 'schedule-state-update') {\n // TODO(luna): We can optimize this by creating a map of\n // fiber to component stack instead of generating the stack\n // for every fiber every time\n const fiberStack = currentFiberStacks.get(event);\n if (fiberStack && currentDispatcherRef != null) {\n event.componentStack = fiberStack.reduce((trace, fiber) => {\n return (\n trace +\n describeFiber(workTagMap, fiber, currentDispatcherRef)\n );\n }, '');\n }\n }\n });\n }\n\n // Clear the current fiber stacks so we don't hold onto the fibers\n // in memory after profiling finishes\n currentFiberStacks.clear();\n }\n }\n }\n\n return {\n getTimelineData,\n profilingHooks: {\n markCommitStarted,\n markCommitStopped,\n markComponentRenderStarted,\n markComponentRenderStopped,\n markComponentPassiveEffectMountStarted,\n markComponentPassiveEffectMountStopped,\n markComponentPassiveEffectUnmountStarted,\n markComponentPassiveEffectUnmountStopped,\n markComponentLayoutEffectMountStarted,\n markComponentLayoutEffectMountStopped,\n markComponentLayoutEffectUnmountStarted,\n markComponentLayoutEffectUnmountStopped,\n markComponentErrored,\n markComponentSuspended,\n markLayoutEffectsStarted,\n markLayoutEffectsStopped,\n markPassiveEffectsStarted,\n markPassiveEffectsStopped,\n markRenderStarted,\n markRenderYielded,\n markRenderStopped,\n markRenderScheduled,\n markForceUpdateScheduled,\n markStateUpdateScheduled,\n },\n toggleProfilingStatus,\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n ComponentFilterDisplayName,\n ComponentFilterElementType,\n ComponentFilterHOC,\n ComponentFilterLocation,\n ElementTypeClass,\n ElementTypeContext,\n ElementTypeFunction,\n ElementTypeForwardRef,\n ElementTypeHostComponent,\n ElementTypeMemo,\n ElementTypeOtherOrUnknown,\n ElementTypeProfiler,\n ElementTypeRoot,\n ElementTypeSuspense,\n ElementTypeSuspenseList,\n ElementTypeTracingMarker,\n StrictMode,\n} from 'react-devtools-shared/src/types';\nimport {\n deletePathInObject,\n getDisplayName,\n getWrappedDisplayName,\n getDefaultComponentFilters,\n getInObject,\n getUID,\n renamePathInObject,\n setInObject,\n utfEncodeString,\n} from 'react-devtools-shared/src/utils';\nimport {sessionStorageGetItem} from 'react-devtools-shared/src/storage';\nimport {\n gt,\n gte,\n serializeToString,\n} from 'react-devtools-shared/src/backend/utils';\nimport {\n cleanForBridge,\n copyWithDelete,\n copyWithRename,\n copyWithSet,\n getEffectDurations,\n} from './utils';\nimport {\n __DEBUG__,\n PROFILING_FLAG_BASIC_SUPPORT,\n PROFILING_FLAG_TIMELINE_SUPPORT,\n SESSION_STORAGE_RELOAD_AND_PROFILE_KEY,\n SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n TREE_OPERATION_ADD,\n TREE_OPERATION_REMOVE,\n TREE_OPERATION_REMOVE_ROOT,\n TREE_OPERATION_REORDER_CHILDREN,\n TREE_OPERATION_SET_SUBTREE_MODE,\n TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS,\n TREE_OPERATION_UPDATE_TREE_BASE_DURATION,\n} from '../constants';\nimport {inspectHooksOfFiber} from 'react-debug-tools';\nimport {\n patchConsoleUsingWindowValues,\n registerRenderer as registerRendererWithConsole,\n patchForStrictMode as patchConsoleForStrictMode,\n unpatchForStrictMode as unpatchConsoleForStrictMode,\n} from './console';\nimport {\n CONCURRENT_MODE_NUMBER,\n CONCURRENT_MODE_SYMBOL_STRING,\n DEPRECATED_ASYNC_MODE_SYMBOL_STRING,\n PROVIDER_NUMBER,\n PROVIDER_SYMBOL_STRING,\n CONTEXT_NUMBER,\n CONTEXT_SYMBOL_STRING,\n STRICT_MODE_NUMBER,\n STRICT_MODE_SYMBOL_STRING,\n PROFILER_NUMBER,\n PROFILER_SYMBOL_STRING,\n SCOPE_NUMBER,\n SCOPE_SYMBOL_STRING,\n FORWARD_REF_NUMBER,\n FORWARD_REF_SYMBOL_STRING,\n MEMO_NUMBER,\n MEMO_SYMBOL_STRING,\n SERVER_CONTEXT_SYMBOL_STRING,\n} from './ReactSymbols';\nimport {format} from './utils';\nimport {enableStyleXFeatures} from 'react-devtools-feature-flags';\nimport is from 'shared/objectIs';\nimport hasOwnProperty from 'shared/hasOwnProperty';\nimport {getStyleXData} from './StyleX/utils';\nimport {createProfilingHooks} from './profilingHooks';\n\nimport type {GetTimelineData, ToggleProfilingStatus} from './profilingHooks';\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {\n ChangeDescription,\n CommitDataBackend,\n DevToolsHook,\n InspectedElement,\n InspectedElementPayload,\n InstanceAndStyle,\n NativeType,\n PathFrame,\n PathMatch,\n ProfilingDataBackend,\n ProfilingDataForRootBackend,\n ReactRenderer,\n RendererInterface,\n SerializedElement,\n WorkTagMap,\n} from './types';\nimport type {\n ComponentFilter,\n ElementType,\n Plugins,\n} from 'react-devtools-shared/src/types';\n\ntype getDisplayNameForFiberType = (fiber: Fiber) => string | null;\ntype getTypeSymbolType = (type: any) => symbol | number;\n\ntype ReactPriorityLevelsType = {\n ImmediatePriority: number,\n UserBlockingPriority: number,\n NormalPriority: number,\n LowPriority: number,\n IdlePriority: number,\n NoPriority: number,\n};\n\nfunction getFiberFlags(fiber: Fiber): number {\n // The name of this field changed from \"effectTag\" to \"flags\"\n return fiber.flags !== undefined ? fiber.flags : (fiber: any).effectTag;\n}\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n // $FlowFixMe[method-unbinding]\n typeof performance === 'object' && typeof performance.now === 'function'\n ? () => performance.now()\n : () => Date.now();\n\nexport function getInternalReactConstants(version: string): {\n getDisplayNameForFiber: getDisplayNameForFiberType,\n getTypeSymbol: getTypeSymbolType,\n ReactPriorityLevels: ReactPriorityLevelsType,\n ReactTypeOfWork: WorkTagMap,\n StrictModeBits: number,\n} {\n // **********************************************************\n // The section below is copied from files in React repo.\n // Keep it in sync, and add version guards if it changes.\n //\n // Technically these priority levels are invalid for versions before 16.9,\n // but 16.9 is the first version to report priority level to DevTools,\n // so we can avoid checking for earlier versions and support pre-16.9 canary releases in the process.\n let ReactPriorityLevels: ReactPriorityLevelsType = {\n ImmediatePriority: 99,\n UserBlockingPriority: 98,\n NormalPriority: 97,\n LowPriority: 96,\n IdlePriority: 95,\n NoPriority: 90,\n };\n\n if (gt(version, '17.0.2')) {\n ReactPriorityLevels = {\n ImmediatePriority: 1,\n UserBlockingPriority: 2,\n NormalPriority: 3,\n LowPriority: 4,\n IdlePriority: 5,\n NoPriority: 0,\n };\n }\n\n let StrictModeBits = 0;\n if (gte(version, '18.0.0-alpha')) {\n // 18+\n StrictModeBits = 0b011000;\n } else if (gte(version, '16.9.0')) {\n // 16.9 - 17\n StrictModeBits = 0b1;\n } else if (gte(version, '16.3.0')) {\n // 16.3 - 16.8\n StrictModeBits = 0b10;\n }\n\n let ReactTypeOfWork: WorkTagMap = ((null: any): WorkTagMap);\n\n // **********************************************************\n // The section below is copied from files in React repo.\n // Keep it in sync, and add version guards if it changes.\n //\n // TODO Update the gt() check below to be gte() whichever the next version number is.\n // Currently the version in Git is 17.0.2 (but that version has not been/may not end up being released).\n if (gt(version, '17.0.1')) {\n ReactTypeOfWork = {\n CacheComponent: 24, // Experimental\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1, // Removed\n CoroutineHandlerPhase: -1, // Removed\n DehydratedSuspenseComponent: 18, // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: 26, // In reality, 18.2+. But doesn't hurt to include it here\n HostSingleton: 27, // Same as above\n HostText: 6,\n IncompleteClassComponent: 17,\n IndeterminateComponent: 2,\n LazyComponent: 16,\n LegacyHiddenComponent: 23,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: 22, // Experimental\n Profiler: 12,\n ScopeComponent: 21, // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19, // Experimental\n TracingMarkerComponent: 25, // Experimental - This is technically in 18 but we don't\n // want to fork again so we're adding it here instead\n YieldComponent: -1, // Removed\n };\n } else if (gte(version, '17.0.0-alpha')) {\n ReactTypeOfWork = {\n CacheComponent: -1, // Doesn't exist yet\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1, // Removed\n CoroutineHandlerPhase: -1, // Removed\n DehydratedSuspenseComponent: 18, // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1, // Doesn't exist yet\n HostSingleton: -1, // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: 17,\n IndeterminateComponent: 2,\n LazyComponent: 16,\n LegacyHiddenComponent: 24,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: 23, // Experimental\n Profiler: 12,\n ScopeComponent: 21, // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19, // Experimental\n TracingMarkerComponent: -1, // Doesn't exist yet\n YieldComponent: -1, // Removed\n };\n } else if (gte(version, '16.6.0-beta.0')) {\n ReactTypeOfWork = {\n CacheComponent: -1, // Doesn't exist yet\n ClassComponent: 1,\n ContextConsumer: 9,\n ContextProvider: 10,\n CoroutineComponent: -1, // Removed\n CoroutineHandlerPhase: -1, // Removed\n DehydratedSuspenseComponent: 18, // Behind a flag\n ForwardRef: 11,\n Fragment: 7,\n FunctionComponent: 0,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1, // Doesn't exist yet\n HostSingleton: -1, // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: 17,\n IndeterminateComponent: 2,\n LazyComponent: 16,\n LegacyHiddenComponent: -1,\n MemoComponent: 14,\n Mode: 8,\n OffscreenComponent: -1, // Experimental\n Profiler: 12,\n ScopeComponent: -1, // Experimental\n SimpleMemoComponent: 15,\n SuspenseComponent: 13,\n SuspenseListComponent: 19, // Experimental\n TracingMarkerComponent: -1, // Doesn't exist yet\n YieldComponent: -1, // Removed\n };\n } else if (gte(version, '16.4.3-alpha')) {\n ReactTypeOfWork = {\n CacheComponent: -1, // Doesn't exist yet\n ClassComponent: 2,\n ContextConsumer: 11,\n ContextProvider: 12,\n CoroutineComponent: -1, // Removed\n CoroutineHandlerPhase: -1, // Removed\n DehydratedSuspenseComponent: -1, // Doesn't exist yet\n ForwardRef: 13,\n Fragment: 9,\n FunctionComponent: 0,\n HostComponent: 7,\n HostPortal: 6,\n HostRoot: 5,\n HostHoistable: -1, // Doesn't exist yet\n HostSingleton: -1, // Doesn't exist yet\n HostText: 8,\n IncompleteClassComponent: -1, // Doesn't exist yet\n IndeterminateComponent: 4,\n LazyComponent: -1, // Doesn't exist yet\n LegacyHiddenComponent: -1,\n MemoComponent: -1, // Doesn't exist yet\n Mode: 10,\n OffscreenComponent: -1, // Experimental\n Profiler: 15,\n ScopeComponent: -1, // Experimental\n SimpleMemoComponent: -1, // Doesn't exist yet\n SuspenseComponent: 16,\n SuspenseListComponent: -1, // Doesn't exist yet\n TracingMarkerComponent: -1, // Doesn't exist yet\n YieldComponent: -1, // Removed\n };\n } else {\n ReactTypeOfWork = {\n CacheComponent: -1, // Doesn't exist yet\n ClassComponent: 2,\n ContextConsumer: 12,\n ContextProvider: 13,\n CoroutineComponent: 7,\n CoroutineHandlerPhase: 8,\n DehydratedSuspenseComponent: -1, // Doesn't exist yet\n ForwardRef: 14,\n Fragment: 10,\n FunctionComponent: 1,\n HostComponent: 5,\n HostPortal: 4,\n HostRoot: 3,\n HostHoistable: -1, // Doesn't exist yet\n HostSingleton: -1, // Doesn't exist yet\n HostText: 6,\n IncompleteClassComponent: -1, // Doesn't exist yet\n IndeterminateComponent: 0,\n LazyComponent: -1, // Doesn't exist yet\n LegacyHiddenComponent: -1,\n MemoComponent: -1, // Doesn't exist yet\n Mode: 11,\n OffscreenComponent: -1, // Experimental\n Profiler: 15,\n ScopeComponent: -1, // Experimental\n SimpleMemoComponent: -1, // Doesn't exist yet\n SuspenseComponent: 16,\n SuspenseListComponent: -1, // Doesn't exist yet\n TracingMarkerComponent: -1, // Doesn't exist yet\n YieldComponent: 9,\n };\n }\n // **********************************************************\n // End of copied code.\n // **********************************************************\n\n function getTypeSymbol(type: any): symbol | number {\n const symbolOrNumber =\n typeof type === 'object' && type !== null ? type.$$typeof : type;\n\n return typeof symbolOrNumber === 'symbol'\n ? // $FlowFixMe[incompatible-return] `toString()` doesn't match the type signature?\n symbolOrNumber.toString()\n : symbolOrNumber;\n }\n\n const {\n CacheComponent,\n ClassComponent,\n IncompleteClassComponent,\n FunctionComponent,\n IndeterminateComponent,\n ForwardRef,\n HostRoot,\n HostHoistable,\n HostSingleton,\n HostComponent,\n HostPortal,\n HostText,\n Fragment,\n LazyComponent,\n LegacyHiddenComponent,\n MemoComponent,\n OffscreenComponent,\n Profiler,\n ScopeComponent,\n SimpleMemoComponent,\n SuspenseComponent,\n SuspenseListComponent,\n TracingMarkerComponent,\n } = ReactTypeOfWork;\n\n function resolveFiberType(type: any): $FlowFixMe {\n const typeSymbol = getTypeSymbol(type);\n switch (typeSymbol) {\n case MEMO_NUMBER:\n case MEMO_SYMBOL_STRING:\n // recursively resolving memo type in case of memo(forwardRef(Component))\n return resolveFiberType(type.type);\n case FORWARD_REF_NUMBER:\n case FORWARD_REF_SYMBOL_STRING:\n return type.render;\n default:\n return type;\n }\n }\n\n // NOTICE Keep in sync with shouldFilterFiber() and other get*ForFiber methods\n function getDisplayNameForFiber(fiber: Fiber): string | null {\n const {elementType, type, tag} = fiber;\n\n let resolvedType = type;\n if (typeof type === 'object' && type !== null) {\n resolvedType = resolveFiberType(type);\n }\n\n let resolvedContext: any = null;\n\n switch (tag) {\n case CacheComponent:\n return 'Cache';\n case ClassComponent:\n case IncompleteClassComponent:\n return getDisplayName(resolvedType);\n case FunctionComponent:\n case IndeterminateComponent:\n return getDisplayName(resolvedType);\n case ForwardRef:\n return getWrappedDisplayName(\n elementType,\n resolvedType,\n 'ForwardRef',\n 'Anonymous',\n );\n case HostRoot:\n const fiberRoot = fiber.stateNode;\n if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n return fiberRoot._debugRootType;\n }\n return null;\n case HostComponent:\n case HostSingleton:\n case HostHoistable:\n return type;\n case HostPortal:\n case HostText:\n return null;\n case Fragment:\n return 'Fragment';\n case LazyComponent:\n // This display name will not be user visible.\n // Once a Lazy component loads its inner component, React replaces the tag and type.\n // This display name will only show up in console logs when DevTools DEBUG mode is on.\n return 'Lazy';\n case MemoComponent:\n case SimpleMemoComponent:\n // Display name in React does not use `Memo` as a wrapper but fallback name.\n return getWrappedDisplayName(\n elementType,\n resolvedType,\n 'Memo',\n 'Anonymous',\n );\n case SuspenseComponent:\n return 'Suspense';\n case LegacyHiddenComponent:\n return 'LegacyHidden';\n case OffscreenComponent:\n return 'Offscreen';\n case ScopeComponent:\n return 'Scope';\n case SuspenseListComponent:\n return 'SuspenseList';\n case Profiler:\n return 'Profiler';\n case TracingMarkerComponent:\n return 'TracingMarker';\n default:\n const typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n return null;\n case PROVIDER_NUMBER:\n case PROVIDER_SYMBOL_STRING:\n // 16.3.0 exposed the context object as \"context\"\n // PR #12501 changed it to \"_context\" for 16.3.1+\n // NOTE Keep in sync with inspectElementRaw()\n resolvedContext = fiber.type._context || fiber.type.context;\n return `${resolvedContext.displayName || 'Context'}.Provider`;\n case CONTEXT_NUMBER:\n case CONTEXT_SYMBOL_STRING:\n case SERVER_CONTEXT_SYMBOL_STRING:\n // 16.3-16.5 read from \"type\" because the Consumer is the actual context object.\n // 16.6+ should read from \"type._context\" because Consumer can be different (in DEV).\n // NOTE Keep in sync with inspectElementRaw()\n resolvedContext = fiber.type._context || fiber.type;\n\n // NOTE: TraceUpdatesBackendManager depends on the name ending in '.Consumer'\n // If you change the name, figure out a more resilient way to detect it.\n return `${resolvedContext.displayName || 'Context'}.Consumer`;\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return null;\n case PROFILER_NUMBER:\n case PROFILER_SYMBOL_STRING:\n return `Profiler(${fiber.memoizedProps.id})`;\n case SCOPE_NUMBER:\n case SCOPE_SYMBOL_STRING:\n return 'Scope';\n default:\n // Unknown element type.\n // This may mean a new element type that has not yet been added to DevTools.\n return null;\n }\n }\n }\n\n return {\n getDisplayNameForFiber,\n getTypeSymbol,\n ReactPriorityLevels,\n ReactTypeOfWork,\n StrictModeBits,\n };\n}\n\n// Map of one or more Fibers in a pair to their unique id number.\n// We track both Fibers to support Fast Refresh,\n// which may forcefully replace one of the pair as part of hot reloading.\n// In that case it's still important to be able to locate the previous ID during subsequent renders.\nconst fiberToIDMap: Map = new Map();\n\n// Map of id to one (arbitrary) Fiber in a pair.\n// This Map is used to e.g. get the display name for a Fiber or schedule an update,\n// operations that should be the same whether the current and work-in-progress Fiber is used.\nconst idToArbitraryFiberMap: Map = new Map();\n\nexport function attach(\n hook: DevToolsHook,\n rendererID: number,\n renderer: ReactRenderer,\n global: Object,\n): RendererInterface {\n // Newer versions of the reconciler package also specific reconciler version.\n // If that version number is present, use it.\n // Third party renderer versions may not match the reconciler version,\n // and the latter is what's important in terms of tags and symbols.\n const version = renderer.reconcilerVersion || renderer.version;\n\n const {\n getDisplayNameForFiber,\n getTypeSymbol,\n ReactPriorityLevels,\n ReactTypeOfWork,\n StrictModeBits,\n } = getInternalReactConstants(version);\n const {\n CacheComponent,\n ClassComponent,\n ContextConsumer,\n DehydratedSuspenseComponent,\n ForwardRef,\n Fragment,\n FunctionComponent,\n HostRoot,\n HostHoistable,\n HostSingleton,\n HostPortal,\n HostComponent,\n HostText,\n IncompleteClassComponent,\n IndeterminateComponent,\n LegacyHiddenComponent,\n MemoComponent,\n OffscreenComponent,\n SimpleMemoComponent,\n SuspenseComponent,\n SuspenseListComponent,\n TracingMarkerComponent,\n } = ReactTypeOfWork;\n const {\n ImmediatePriority,\n UserBlockingPriority,\n NormalPriority,\n LowPriority,\n IdlePriority,\n NoPriority,\n } = ReactPriorityLevels;\n\n const {\n getLaneLabelMap,\n injectProfilingHooks,\n overrideHookState,\n overrideHookStateDeletePath,\n overrideHookStateRenamePath,\n overrideProps,\n overridePropsDeletePath,\n overridePropsRenamePath,\n scheduleRefresh,\n setErrorHandler,\n setSuspenseHandler,\n scheduleUpdate,\n } = renderer;\n const supportsTogglingError =\n typeof setErrorHandler === 'function' &&\n typeof scheduleUpdate === 'function';\n const supportsTogglingSuspense =\n typeof setSuspenseHandler === 'function' &&\n typeof scheduleUpdate === 'function';\n\n if (typeof scheduleRefresh === 'function') {\n // When Fast Refresh updates a component, the frontend may need to purge cached information.\n // For example, ASTs cached for the component (for named hooks) may no longer be valid.\n // Send a signal to the frontend to purge this cached information.\n // The \"fastRefreshScheduled\" dispatched is global (not Fiber or even Renderer specific).\n // This is less effecient since it means the front-end will need to purge the entire cache,\n // but this is probably an okay trade off in order to reduce coupling between the DevTools and Fast Refresh.\n renderer.scheduleRefresh = (...args) => {\n try {\n hook.emit('fastRefreshScheduled');\n } finally {\n return scheduleRefresh(...args);\n }\n };\n }\n\n let getTimelineData: null | GetTimelineData = null;\n let toggleProfilingStatus: null | ToggleProfilingStatus = null;\n if (typeof injectProfilingHooks === 'function') {\n const response = createProfilingHooks({\n getDisplayNameForFiber,\n getIsProfiling: () => isProfiling,\n getLaneLabelMap,\n currentDispatcherRef: renderer.currentDispatcherRef,\n workTagMap: ReactTypeOfWork,\n reactVersion: version,\n });\n\n // Pass the Profiling hooks to the reconciler for it to call during render.\n injectProfilingHooks(response.profilingHooks);\n\n // Hang onto this toggle so we can notify the external methods of profiling status changes.\n getTimelineData = response.getTimelineData;\n toggleProfilingStatus = response.toggleProfilingStatus;\n }\n\n // Tracks Fibers with recently changed number of error/warning messages.\n // These collections store the Fiber rather than the ID,\n // in order to avoid generating an ID for Fibers that never get mounted\n // (due to e.g. Suspense or error boundaries).\n // onErrorOrWarning() adds Fibers and recordPendingErrorsAndWarnings() later clears them.\n const fibersWithChangedErrorOrWarningCounts: Set = new Set();\n const pendingFiberToErrorsMap: Map> = new Map();\n const pendingFiberToWarningsMap: Map> = new Map();\n\n // Mapping of fiber IDs to error/warning messages and counts.\n const fiberIDToErrorsMap: Map> = new Map();\n const fiberIDToWarningsMap: Map> = new Map();\n\n function clearErrorsAndWarnings() {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const id of fiberIDToErrorsMap.keys()) {\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n updateMostRecentlyInspectedElementIfNecessary(id);\n }\n }\n\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const id of fiberIDToWarningsMap.keys()) {\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n updateMostRecentlyInspectedElementIfNecessary(id);\n }\n }\n\n fiberIDToErrorsMap.clear();\n fiberIDToWarningsMap.clear();\n\n flushPendingEvents();\n }\n\n function clearMessageCountHelper(\n fiberID: number,\n pendingFiberToMessageCountMap: Map>,\n fiberIDToMessageCountMap: Map>,\n ) {\n const fiber = idToArbitraryFiberMap.get(fiberID);\n if (fiber != null) {\n // Throw out any pending changes.\n pendingFiberToErrorsMap.delete(fiber);\n\n if (fiberIDToMessageCountMap.has(fiberID)) {\n fiberIDToMessageCountMap.delete(fiberID);\n\n // If previous flushed counts have changed, schedule an update too.\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n flushPendingEvents();\n\n updateMostRecentlyInspectedElementIfNecessary(fiberID);\n } else {\n fibersWithChangedErrorOrWarningCounts.delete(fiber);\n }\n }\n }\n\n function clearErrorsForFiberID(fiberID: number) {\n clearMessageCountHelper(\n fiberID,\n pendingFiberToErrorsMap,\n fiberIDToErrorsMap,\n );\n }\n\n function clearWarningsForFiberID(fiberID: number) {\n clearMessageCountHelper(\n fiberID,\n pendingFiberToWarningsMap,\n fiberIDToWarningsMap,\n );\n }\n\n function updateMostRecentlyInspectedElementIfNecessary(\n fiberID: number,\n ): void {\n if (\n mostRecentlyInspectedElement !== null &&\n mostRecentlyInspectedElement.id === fiberID\n ) {\n hasElementUpdatedSinceLastInspected = true;\n }\n }\n\n // Called when an error or warning is logged during render, commit, or passive (including unmount functions).\n function onErrorOrWarning(\n fiber: Fiber,\n type: 'error' | 'warn',\n args: $ReadOnlyArray,\n ): void {\n if (type === 'error') {\n const maybeID = getFiberIDUnsafe(fiber);\n // if this is an error simulated by us to trigger error boundary, ignore\n if (maybeID != null && forceErrorForFiberIDs.get(maybeID) === true) {\n return;\n }\n }\n const message = format(...args);\n if (__DEBUG__) {\n debug('onErrorOrWarning', fiber, null, `${type}: \"${message}\"`);\n }\n\n // Mark this Fiber as needed its warning/error count updated during the next flush.\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n\n // Track the warning/error for later.\n const fiberMap =\n type === 'error' ? pendingFiberToErrorsMap : pendingFiberToWarningsMap;\n const messageMap = fiberMap.get(fiber);\n if (messageMap != null) {\n const count = messageMap.get(message) || 0;\n messageMap.set(message, count + 1);\n } else {\n fiberMap.set(fiber, new Map([[message, 1]]));\n }\n\n // Passive effects may trigger errors or warnings too;\n // In this case, we should wait until the rest of the passive effects have run,\n // but we shouldn't wait until the next commit because that might be a long time.\n // This would also cause \"tearing\" between an inspected Component and the tree view.\n // Then again we don't want to flush too soon because this could be an error during async rendering.\n // Use a debounce technique to ensure that we'll eventually flush.\n flushPendingErrorsAndWarningsAfterDelay();\n }\n\n // Patching the console enables DevTools to do a few useful things:\n // * Append component stacks to warnings and error messages\n // * Disable logging during re-renders to inspect hooks (see inspectHooksOfFiber)\n registerRendererWithConsole(renderer, onErrorOrWarning);\n\n // The renderer interface can't read these preferences directly,\n // because it is stored in localStorage within the context of the extension.\n // It relies on the extension to pass the preference through via the global.\n patchConsoleUsingWindowValues();\n\n const debug = (\n name: string,\n fiber: Fiber,\n parentFiber: ?Fiber,\n extraString: string = '',\n ): void => {\n if (__DEBUG__) {\n const displayName =\n fiber.tag + ':' + (getDisplayNameForFiber(fiber) || 'null');\n\n const maybeID = getFiberIDUnsafe(fiber) || '';\n const parentDisplayName = parentFiber\n ? parentFiber.tag +\n ':' +\n (getDisplayNameForFiber(parentFiber) || 'null')\n : '';\n const maybeParentID = parentFiber\n ? getFiberIDUnsafe(parentFiber) || ''\n : '';\n\n console.groupCollapsed(\n `[renderer] %c${name} %c${displayName} (${maybeID}) %c${\n parentFiber ? `${parentDisplayName} (${maybeParentID})` : ''\n } %c${extraString}`,\n 'color: red; font-weight: bold;',\n 'color: blue;',\n 'color: purple;',\n 'color: black;',\n );\n console.log(new Error().stack.split('\\n').slice(1).join('\\n'));\n console.groupEnd();\n }\n };\n\n // Configurable Components tree filters.\n const hideElementsWithDisplayNames: Set = new Set();\n const hideElementsWithPaths: Set = new Set();\n const hideElementsWithTypes: Set = new Set();\n\n // Highlight updates\n let traceUpdatesEnabled: boolean = false;\n const traceUpdatesForNodes: Set = new Set();\n\n function applyComponentFilters(componentFilters: Array) {\n hideElementsWithTypes.clear();\n hideElementsWithDisplayNames.clear();\n hideElementsWithPaths.clear();\n\n componentFilters.forEach(componentFilter => {\n if (!componentFilter.isEnabled) {\n return;\n }\n\n switch (componentFilter.type) {\n case ComponentFilterDisplayName:\n if (componentFilter.isValid && componentFilter.value !== '') {\n hideElementsWithDisplayNames.add(\n new RegExp(componentFilter.value, 'i'),\n );\n }\n break;\n case ComponentFilterElementType:\n hideElementsWithTypes.add(componentFilter.value);\n break;\n case ComponentFilterLocation:\n if (componentFilter.isValid && componentFilter.value !== '') {\n hideElementsWithPaths.add(new RegExp(componentFilter.value, 'i'));\n }\n break;\n case ComponentFilterHOC:\n hideElementsWithDisplayNames.add(new RegExp('\\\\('));\n break;\n default:\n console.warn(\n `Invalid component filter type \"${componentFilter.type}\"`,\n );\n break;\n }\n });\n }\n\n // The renderer interface can't read saved component filters directly,\n // because they are stored in localStorage within the context of the extension.\n // Instead it relies on the extension to pass filters through.\n if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ != null) {\n applyComponentFilters(window.__REACT_DEVTOOLS_COMPONENT_FILTERS__);\n } else {\n // Unfortunately this feature is not expected to work for React Native for now.\n // It would be annoying for us to spam YellowBox warnings with unactionable stuff,\n // so for now just skip this message...\n //console.warn('⚛️ DevTools: Could not locate saved component filters');\n\n // Fallback to assuming the default filters in this case.\n applyComponentFilters(getDefaultComponentFilters());\n }\n\n // If necessary, we can revisit optimizing this operation.\n // For example, we could add a new recursive unmount tree operation.\n // The unmount operations are already significantly smaller than mount operations though.\n // This is something to keep in mind for later.\n function updateComponentFilters(componentFilters: Array) {\n if (isProfiling) {\n // Re-mounting a tree while profiling is in progress might break a lot of assumptions.\n // If necessary, we could support this- but it doesn't seem like a necessary use case.\n throw Error('Cannot modify filter preferences while profiling');\n }\n\n // Recursively unmount all roots.\n hook.getFiberRoots(rendererID).forEach(root => {\n currentRootID = getOrGenerateFiberID(root.current);\n // The TREE_OPERATION_REMOVE_ROOT operation serves two purposes:\n // 1. It avoids sending unnecessary bridge traffic to clear a root.\n // 2. It preserves Fiber IDs when remounting (below) which in turn ID to error/warning mapping.\n pushOperation(TREE_OPERATION_REMOVE_ROOT);\n flushPendingEvents(root);\n currentRootID = -1;\n });\n\n applyComponentFilters(componentFilters);\n\n // Reset pseudo counters so that new path selections will be persisted.\n rootDisplayNameCounter.clear();\n\n // Recursively re-mount all roots with new filter criteria applied.\n hook.getFiberRoots(rendererID).forEach(root => {\n currentRootID = getOrGenerateFiberID(root.current);\n setRootPseudoKey(currentRootID, root.current);\n mountFiberRecursively(root.current, null, false, false);\n flushPendingEvents(root);\n currentRootID = -1;\n });\n\n // Also re-evaluate all error and warning counts given the new filters.\n reevaluateErrorsAndWarnings();\n flushPendingEvents();\n }\n\n // NOTICE Keep in sync with get*ForFiber methods\n function shouldFilterFiber(fiber: Fiber): boolean {\n const {_debugSource, tag, type, key} = fiber;\n\n switch (tag) {\n case DehydratedSuspenseComponent:\n // TODO: ideally we would show dehydrated Suspense immediately.\n // However, it has some special behavior (like disconnecting\n // an alternate and turning into real Suspense) which breaks DevTools.\n // For now, ignore it, and only show it once it gets hydrated.\n // https://github.com/bvaughn/react-devtools-experimental/issues/197\n return true;\n case HostPortal:\n case HostText:\n case LegacyHiddenComponent:\n case OffscreenComponent:\n return true;\n case HostRoot:\n // It is never valid to filter the root element.\n return false;\n case Fragment:\n return key === null;\n default:\n const typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return true;\n default:\n break;\n }\n }\n\n const elementType = getElementTypeForFiber(fiber);\n if (hideElementsWithTypes.has(elementType)) {\n return true;\n }\n\n if (hideElementsWithDisplayNames.size > 0) {\n const displayName = getDisplayNameForFiber(fiber);\n if (displayName != null) {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const displayNameRegExp of hideElementsWithDisplayNames) {\n if (displayNameRegExp.test(displayName)) {\n return true;\n }\n }\n }\n }\n\n if (_debugSource != null && hideElementsWithPaths.size > 0) {\n const {fileName} = _debugSource;\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const pathRegExp of hideElementsWithPaths) {\n if (pathRegExp.test(fileName)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n // NOTICE Keep in sync with shouldFilterFiber() and other get*ForFiber methods\n function getElementTypeForFiber(fiber: Fiber): ElementType {\n const {type, tag} = fiber;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n return ElementTypeClass;\n case FunctionComponent:\n case IndeterminateComponent:\n return ElementTypeFunction;\n case ForwardRef:\n return ElementTypeForwardRef;\n case HostRoot:\n return ElementTypeRoot;\n case HostComponent:\n case HostHoistable:\n case HostSingleton:\n return ElementTypeHostComponent;\n case HostPortal:\n case HostText:\n case Fragment:\n return ElementTypeOtherOrUnknown;\n case MemoComponent:\n case SimpleMemoComponent:\n return ElementTypeMemo;\n case SuspenseComponent:\n return ElementTypeSuspense;\n case SuspenseListComponent:\n return ElementTypeSuspenseList;\n case TracingMarkerComponent:\n return ElementTypeTracingMarker;\n default:\n const typeSymbol = getTypeSymbol(type);\n\n switch (typeSymbol) {\n case CONCURRENT_MODE_NUMBER:\n case CONCURRENT_MODE_SYMBOL_STRING:\n case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n return ElementTypeOtherOrUnknown;\n case PROVIDER_NUMBER:\n case PROVIDER_SYMBOL_STRING:\n return ElementTypeContext;\n case CONTEXT_NUMBER:\n case CONTEXT_SYMBOL_STRING:\n return ElementTypeContext;\n case STRICT_MODE_NUMBER:\n case STRICT_MODE_SYMBOL_STRING:\n return ElementTypeOtherOrUnknown;\n case PROFILER_NUMBER:\n case PROFILER_SYMBOL_STRING:\n return ElementTypeProfiler;\n default:\n return ElementTypeOtherOrUnknown;\n }\n }\n }\n\n // When profiling is supported, we store the latest tree base durations for each Fiber.\n // This is so that we can quickly capture a snapshot of those values if profiling starts.\n // If we didn't store these values, we'd have to crawl the tree when profiling started,\n // and use a slow path to find each of the current Fibers.\n const idToTreeBaseDurationMap: Map = new Map();\n\n // When profiling is supported, we store the latest tree base durations for each Fiber.\n // This map enables us to filter these times by root when sending them to the frontend.\n const idToRootMap: Map = new Map();\n\n // When a mount or update is in progress, this value tracks the root that is being operated on.\n let currentRootID: number = -1;\n\n // Returns the unique ID for a Fiber or generates and caches a new one if the Fiber hasn't been seen before.\n // Once this method has been called for a Fiber, untrackFiberID() should always be called later to avoid leaking.\n function getOrGenerateFiberID(fiber: Fiber): number {\n let id = null;\n if (fiberToIDMap.has(fiber)) {\n id = fiberToIDMap.get(fiber);\n } else {\n const {alternate} = fiber;\n if (alternate !== null && fiberToIDMap.has(alternate)) {\n id = fiberToIDMap.get(alternate);\n }\n }\n\n let didGenerateID = false;\n if (id === null) {\n didGenerateID = true;\n id = getUID();\n }\n\n // This refinement is for Flow purposes only.\n const refinedID = ((id: any): number);\n\n // Make sure we're tracking this Fiber\n // e.g. if it just mounted or an error was logged during initial render.\n if (!fiberToIDMap.has(fiber)) {\n fiberToIDMap.set(fiber, refinedID);\n idToArbitraryFiberMap.set(refinedID, fiber);\n }\n\n // Also make sure we're tracking its alternate,\n // e.g. in case this is the first update after mount.\n const {alternate} = fiber;\n if (alternate !== null) {\n if (!fiberToIDMap.has(alternate)) {\n fiberToIDMap.set(alternate, refinedID);\n }\n }\n\n if (__DEBUG__) {\n if (didGenerateID) {\n debug(\n 'getOrGenerateFiberID()',\n fiber,\n fiber.return,\n 'Generated a new UID',\n );\n }\n }\n\n return refinedID;\n }\n\n // Returns an ID if one has already been generated for the Fiber or throws.\n function getFiberIDThrows(fiber: Fiber): number {\n const maybeID = getFiberIDUnsafe(fiber);\n if (maybeID !== null) {\n return maybeID;\n }\n throw Error(\n `Could not find ID for Fiber \"${getDisplayNameForFiber(fiber) || ''}\"`,\n );\n }\n\n // Returns an ID if one has already been generated for the Fiber or null if one has not been generated.\n // Use this method while e.g. logging to avoid over-retaining Fibers.\n function getFiberIDUnsafe(fiber: Fiber): number | null {\n if (fiberToIDMap.has(fiber)) {\n return ((fiberToIDMap.get(fiber): any): number);\n } else {\n const {alternate} = fiber;\n if (alternate !== null && fiberToIDMap.has(alternate)) {\n return ((fiberToIDMap.get(alternate): any): number);\n }\n }\n return null;\n }\n\n // Removes a Fiber (and its alternate) from the Maps used to track their id.\n // This method should always be called when a Fiber is unmounting.\n function untrackFiberID(fiber: Fiber) {\n if (__DEBUG__) {\n debug('untrackFiberID()', fiber, fiber.return, 'schedule after delay');\n }\n\n // Untrack Fibers after a slight delay in order to support a Fast Refresh edge case:\n // 1. Component type is updated and Fast Refresh schedules an update+remount.\n // 2. flushPendingErrorsAndWarningsAfterDelay() runs, sees the old Fiber is no longer mounted\n // (it's been disconnected by Fast Refresh), and calls untrackFiberID() to clear it from the Map.\n // 3. React flushes pending passive effects before it runs the next render,\n // which logs an error or warning, which causes a new ID to be generated for this Fiber.\n // 4. DevTools now tries to unmount the old Component with the new ID.\n //\n // The underlying problem here is the premature clearing of the Fiber ID,\n // but DevTools has no way to detect that a given Fiber has been scheduled for Fast Refresh.\n // (The \"_debugNeedsRemount\" flag won't necessarily be set.)\n //\n // The best we can do is to delay untracking by a small amount,\n // and give React time to process the Fast Refresh delay.\n\n untrackFibersSet.add(fiber);\n\n // React may detach alternate pointers during unmount;\n // Since our untracking code is async, we should explicily track the pending alternate here as well.\n const alternate = fiber.alternate;\n if (alternate !== null) {\n untrackFibersSet.add(alternate);\n }\n\n if (untrackFibersTimeoutID === null) {\n untrackFibersTimeoutID = setTimeout(untrackFibers, 1000);\n }\n }\n\n const untrackFibersSet: Set = new Set();\n let untrackFibersTimeoutID: TimeoutID | null = null;\n\n function untrackFibers() {\n if (untrackFibersTimeoutID !== null) {\n clearTimeout(untrackFibersTimeoutID);\n untrackFibersTimeoutID = null;\n }\n\n untrackFibersSet.forEach(fiber => {\n const fiberID = getFiberIDUnsafe(fiber);\n if (fiberID !== null) {\n idToArbitraryFiberMap.delete(fiberID);\n\n // Also clear any errors/warnings associated with this fiber.\n clearErrorsForFiberID(fiberID);\n clearWarningsForFiberID(fiberID);\n }\n\n fiberToIDMap.delete(fiber);\n\n const {alternate} = fiber;\n if (alternate !== null) {\n fiberToIDMap.delete(alternate);\n }\n\n if (forceErrorForFiberIDs.has(fiberID)) {\n forceErrorForFiberIDs.delete(fiberID);\n if (forceErrorForFiberIDs.size === 0 && setErrorHandler != null) {\n setErrorHandler(shouldErrorFiberAlwaysNull);\n }\n }\n });\n untrackFibersSet.clear();\n }\n\n function getChangeDescription(\n prevFiber: Fiber | null,\n nextFiber: Fiber,\n ): ChangeDescription | null {\n switch (getElementTypeForFiber(nextFiber)) {\n case ElementTypeClass:\n case ElementTypeFunction:\n case ElementTypeMemo:\n case ElementTypeForwardRef:\n if (prevFiber === null) {\n return {\n context: null,\n didHooksChange: false,\n isFirstMount: true,\n props: null,\n state: null,\n };\n } else {\n const data: ChangeDescription = {\n context: getContextChangedKeys(nextFiber),\n didHooksChange: false,\n isFirstMount: false,\n props: getChangedKeys(\n prevFiber.memoizedProps,\n nextFiber.memoizedProps,\n ),\n state: getChangedKeys(\n prevFiber.memoizedState,\n nextFiber.memoizedState,\n ),\n };\n\n // Only traverse the hooks list once, depending on what info we're returning.\n const indices = getChangedHooksIndices(\n prevFiber.memoizedState,\n nextFiber.memoizedState,\n );\n data.hooks = indices;\n data.didHooksChange = indices !== null && indices.length > 0;\n\n return data;\n }\n default:\n return null;\n }\n }\n\n function updateContextsForFiber(fiber: Fiber) {\n switch (getElementTypeForFiber(fiber)) {\n case ElementTypeClass:\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n if (idToContextsMap !== null) {\n const id = getFiberIDThrows(fiber);\n const contexts = getContextsForFiber(fiber);\n if (contexts !== null) {\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n idToContextsMap.set(id, contexts);\n }\n }\n break;\n default:\n break;\n }\n }\n\n // Differentiates between a null context value and no context.\n const NO_CONTEXT = {};\n\n function getContextsForFiber(fiber: Fiber): [Object, any] | null {\n let legacyContext = NO_CONTEXT;\n let modernContext = NO_CONTEXT;\n\n switch (getElementTypeForFiber(fiber)) {\n case ElementTypeClass:\n const instance = fiber.stateNode;\n if (instance != null) {\n if (\n instance.constructor &&\n instance.constructor.contextType != null\n ) {\n modernContext = instance.context;\n } else {\n legacyContext = instance.context;\n if (legacyContext && Object.keys(legacyContext).length === 0) {\n legacyContext = NO_CONTEXT;\n }\n }\n }\n return [legacyContext, modernContext];\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n const dependencies = fiber.dependencies;\n if (dependencies && dependencies.firstContext) {\n modernContext = dependencies.firstContext;\n }\n\n return [legacyContext, modernContext];\n default:\n return null;\n }\n }\n\n // Record all contexts at the time profiling is started.\n // Fibers only store the current context value,\n // so we need to track them separately in order to determine changed keys.\n function crawlToInitializeContextsMap(fiber: Fiber) {\n const id = getFiberIDUnsafe(fiber);\n\n // Not all Fibers in the subtree have mounted yet.\n // For example, Offscreen (hidden) or Suspense (suspended) subtrees won't yet be tracked.\n // We can safely skip these subtrees.\n if (id !== null) {\n updateContextsForFiber(fiber);\n\n let current = fiber.child;\n while (current !== null) {\n crawlToInitializeContextsMap(current);\n current = current.sibling;\n }\n }\n }\n\n function getContextChangedKeys(fiber: Fiber): null | boolean | Array {\n if (idToContextsMap !== null) {\n const id = getFiberIDThrows(fiber);\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n const prevContexts = idToContextsMap.has(id)\n ? // $FlowFixMe[incompatible-use] found when upgrading Flow\n idToContextsMap.get(id)\n : null;\n const nextContexts = getContextsForFiber(fiber);\n\n if (prevContexts == null || nextContexts == null) {\n return null;\n }\n\n const [prevLegacyContext, prevModernContext] = prevContexts;\n const [nextLegacyContext, nextModernContext] = nextContexts;\n\n switch (getElementTypeForFiber(fiber)) {\n case ElementTypeClass:\n if (prevContexts && nextContexts) {\n if (nextLegacyContext !== NO_CONTEXT) {\n return getChangedKeys(prevLegacyContext, nextLegacyContext);\n } else if (nextModernContext !== NO_CONTEXT) {\n return prevModernContext !== nextModernContext;\n }\n }\n break;\n case ElementTypeForwardRef:\n case ElementTypeFunction:\n case ElementTypeMemo:\n if (nextModernContext !== NO_CONTEXT) {\n let prevContext = prevModernContext;\n let nextContext = nextModernContext;\n\n while (prevContext && nextContext) {\n // Note this only works for versions of React that support this key (e.v. 18+)\n // For older versions, there's no good way to read the current context value after render has completed.\n // This is because React maintains a stack of context values during render,\n // but by the time DevTools is called, render has finished and the stack is empty.\n if (!is(prevContext.memoizedValue, nextContext.memoizedValue)) {\n return true;\n }\n\n prevContext = prevContext.next;\n nextContext = nextContext.next;\n }\n\n return false;\n }\n break;\n default:\n break;\n }\n }\n return null;\n }\n\n function isHookThatCanScheduleUpdate(hookObject: any) {\n const queue = hookObject.queue;\n if (!queue) {\n return false;\n }\n\n const boundHasOwnProperty = hasOwnProperty.bind(queue);\n\n // Detect the shape of useState() or useReducer()\n // using the attributes that are unique to these hooks\n // but also stable (e.g. not tied to current Lanes implementation)\n const isStateOrReducer =\n boundHasOwnProperty('pending') &&\n boundHasOwnProperty('dispatch') &&\n typeof queue.dispatch === 'function';\n\n // Detect useSyncExternalStore()\n const isSyncExternalStore =\n boundHasOwnProperty('value') &&\n boundHasOwnProperty('getSnapshot') &&\n typeof queue.getSnapshot === 'function';\n\n // These are the only types of hooks that can schedule an update.\n return isStateOrReducer || isSyncExternalStore;\n }\n\n function didStatefulHookChange(prev: any, next: any): boolean {\n const prevMemoizedState = prev.memoizedState;\n const nextMemoizedState = next.memoizedState;\n\n if (isHookThatCanScheduleUpdate(prev)) {\n return prevMemoizedState !== nextMemoizedState;\n }\n\n return false;\n }\n\n function getChangedHooksIndices(prev: any, next: any): null | Array {\n if (prev == null || next == null) {\n return null;\n }\n\n const indices = [];\n let index = 0;\n if (\n next.hasOwnProperty('baseState') &&\n next.hasOwnProperty('memoizedState') &&\n next.hasOwnProperty('next') &&\n next.hasOwnProperty('queue')\n ) {\n while (next !== null) {\n if (didStatefulHookChange(prev, next)) {\n indices.push(index);\n }\n next = next.next;\n prev = prev.next;\n index++;\n }\n }\n\n return indices;\n }\n\n function getChangedKeys(prev: any, next: any): null | Array {\n if (prev == null || next == null) {\n return null;\n }\n\n // We can't report anything meaningful for hooks changes.\n if (\n next.hasOwnProperty('baseState') &&\n next.hasOwnProperty('memoizedState') &&\n next.hasOwnProperty('next') &&\n next.hasOwnProperty('queue')\n ) {\n return null;\n }\n\n const keys = new Set([...Object.keys(prev), ...Object.keys(next)]);\n const changedKeys = [];\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const key of keys) {\n if (prev[key] !== next[key]) {\n changedKeys.push(key);\n }\n }\n\n return changedKeys;\n }\n\n // eslint-disable-next-line no-unused-vars\n function didFiberRender(prevFiber: Fiber, nextFiber: Fiber): boolean {\n switch (nextFiber.tag) {\n case ClassComponent:\n case FunctionComponent:\n case ContextConsumer:\n case MemoComponent:\n case SimpleMemoComponent:\n case ForwardRef:\n // For types that execute user code, we check PerformedWork effect.\n // We don't reflect bailouts (either referential or sCU) in DevTools.\n // TODO: This flag is a leaked implementation detail. Once we start\n // releasing DevTools in lockstep with React, we should import a\n // function from the reconciler instead.\n const PerformedWork = 0b000000000000000000000000001;\n return (getFiberFlags(nextFiber) & PerformedWork) === PerformedWork;\n // Note: ContextConsumer only gets PerformedWork effect in 16.3.3+\n // so it won't get highlighted with React 16.3.0 to 16.3.2.\n default:\n // For host components and other types, we compare inputs\n // to determine whether something is an update.\n return (\n prevFiber.memoizedProps !== nextFiber.memoizedProps ||\n prevFiber.memoizedState !== nextFiber.memoizedState ||\n prevFiber.ref !== nextFiber.ref\n );\n }\n }\n\n type OperationsArray = Array;\n\n type StringTableEntry = {\n encodedString: Array,\n id: number,\n };\n\n const pendingOperations: OperationsArray = [];\n const pendingRealUnmountedIDs: Array = [];\n const pendingSimulatedUnmountedIDs: Array = [];\n let pendingOperationsQueue: Array | null = [];\n const pendingStringTable: Map = new Map();\n let pendingStringTableLength: number = 0;\n let pendingUnmountedRootID: number | null = null;\n\n function pushOperation(op: number): void {\n if (__DEV__) {\n if (!Number.isInteger(op)) {\n console.error(\n 'pushOperation() was called but the value is not an integer.',\n op,\n );\n }\n }\n pendingOperations.push(op);\n }\n\n function shouldBailoutWithPendingOperations() {\n if (isProfiling) {\n if (\n currentCommitProfilingMetadata != null &&\n currentCommitProfilingMetadata.durations.length > 0\n ) {\n return false;\n }\n }\n\n return (\n pendingOperations.length === 0 &&\n pendingRealUnmountedIDs.length === 0 &&\n pendingSimulatedUnmountedIDs.length === 0 &&\n pendingUnmountedRootID === null\n );\n }\n\n function flushOrQueueOperations(operations: OperationsArray): void {\n if (shouldBailoutWithPendingOperations()) {\n return;\n }\n\n if (pendingOperationsQueue !== null) {\n pendingOperationsQueue.push(operations);\n } else {\n hook.emit('operations', operations);\n }\n }\n\n let flushPendingErrorsAndWarningsAfterDelayTimeoutID: null | TimeoutID = null;\n\n function clearPendingErrorsAndWarningsAfterDelay() {\n if (flushPendingErrorsAndWarningsAfterDelayTimeoutID !== null) {\n clearTimeout(flushPendingErrorsAndWarningsAfterDelayTimeoutID);\n flushPendingErrorsAndWarningsAfterDelayTimeoutID = null;\n }\n }\n\n function flushPendingErrorsAndWarningsAfterDelay() {\n clearPendingErrorsAndWarningsAfterDelay();\n\n flushPendingErrorsAndWarningsAfterDelayTimeoutID = setTimeout(() => {\n flushPendingErrorsAndWarningsAfterDelayTimeoutID = null;\n\n if (pendingOperations.length > 0) {\n // On the off chance that something else has pushed pending operations,\n // we should bail on warnings; it's probably not safe to push midway.\n return;\n }\n\n recordPendingErrorsAndWarnings();\n\n if (shouldBailoutWithPendingOperations()) {\n // No warnings or errors to flush; we can bail out early here too.\n return;\n }\n\n // We can create a smaller operations array than flushPendingEvents()\n // because we only need to flush warning and error counts.\n // Only a few pieces of fixed information are required up front.\n const operations: OperationsArray = new Array(\n 3 + pendingOperations.length,\n );\n operations[0] = rendererID;\n operations[1] = currentRootID;\n operations[2] = 0; // String table size\n for (let j = 0; j < pendingOperations.length; j++) {\n operations[3 + j] = pendingOperations[j];\n }\n\n flushOrQueueOperations(operations);\n\n pendingOperations.length = 0;\n }, 1000);\n }\n\n function reevaluateErrorsAndWarnings() {\n fibersWithChangedErrorOrWarningCounts.clear();\n fiberIDToErrorsMap.forEach((countMap, fiberID) => {\n const fiber = idToArbitraryFiberMap.get(fiberID);\n if (fiber != null) {\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n }\n });\n fiberIDToWarningsMap.forEach((countMap, fiberID) => {\n const fiber = idToArbitraryFiberMap.get(fiberID);\n if (fiber != null) {\n fibersWithChangedErrorOrWarningCounts.add(fiber);\n }\n });\n recordPendingErrorsAndWarnings();\n }\n\n function mergeMapsAndGetCountHelper(\n fiber: Fiber,\n fiberID: number,\n pendingFiberToMessageCountMap: Map>,\n fiberIDToMessageCountMap: Map>,\n ): number {\n let newCount = 0;\n\n let messageCountMap = fiberIDToMessageCountMap.get(fiberID);\n\n const pendingMessageCountMap = pendingFiberToMessageCountMap.get(fiber);\n if (pendingMessageCountMap != null) {\n if (messageCountMap == null) {\n messageCountMap = pendingMessageCountMap;\n\n fiberIDToMessageCountMap.set(fiberID, pendingMessageCountMap);\n } else {\n // This Flow refinement should not be necessary and yet...\n const refinedMessageCountMap = ((messageCountMap: any): Map<\n string,\n number,\n >);\n\n pendingMessageCountMap.forEach((pendingCount, message) => {\n const previousCount = refinedMessageCountMap.get(message) || 0;\n refinedMessageCountMap.set(message, previousCount + pendingCount);\n });\n }\n }\n\n if (!shouldFilterFiber(fiber)) {\n if (messageCountMap != null) {\n messageCountMap.forEach(count => {\n newCount += count;\n });\n }\n }\n\n pendingFiberToMessageCountMap.delete(fiber);\n\n return newCount;\n }\n\n function recordPendingErrorsAndWarnings() {\n clearPendingErrorsAndWarningsAfterDelay();\n\n fibersWithChangedErrorOrWarningCounts.forEach(fiber => {\n const fiberID = getFiberIDUnsafe(fiber);\n if (fiberID === null) {\n // Don't send updates for Fibers that didn't mount due to e.g. Suspense or an error boundary.\n } else {\n const errorCount = mergeMapsAndGetCountHelper(\n fiber,\n fiberID,\n pendingFiberToErrorsMap,\n fiberIDToErrorsMap,\n );\n const warningCount = mergeMapsAndGetCountHelper(\n fiber,\n fiberID,\n pendingFiberToWarningsMap,\n fiberIDToWarningsMap,\n );\n\n pushOperation(TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS);\n pushOperation(fiberID);\n pushOperation(errorCount);\n pushOperation(warningCount);\n }\n\n // Always clean up so that we don't leak.\n pendingFiberToErrorsMap.delete(fiber);\n pendingFiberToWarningsMap.delete(fiber);\n });\n fibersWithChangedErrorOrWarningCounts.clear();\n }\n\n function flushPendingEvents(root: Object): void {\n // Add any pending errors and warnings to the operations array.\n // We do this just before flushing, so we can ignore errors for no-longer-mounted Fibers.\n recordPendingErrorsAndWarnings();\n\n if (shouldBailoutWithPendingOperations()) {\n // If we aren't profiling, we can just bail out here.\n // No use sending an empty update over the bridge.\n //\n // The Profiler stores metadata for each commit and reconstructs the app tree per commit using:\n // (1) an initial tree snapshot and\n // (2) the operations array for each commit\n // Because of this, it's important that the operations and metadata arrays align,\n // So it's important not to omit even empty operations while profiling is active.\n return;\n }\n\n const numUnmountIDs =\n pendingRealUnmountedIDs.length +\n pendingSimulatedUnmountedIDs.length +\n (pendingUnmountedRootID === null ? 0 : 1);\n\n const operations = new Array(\n // Identify which renderer this update is coming from.\n 2 + // [rendererID, rootFiberID]\n // How big is the string table?\n 1 + // [stringTableLength]\n // Then goes the actual string table.\n pendingStringTableLength +\n // All unmounts are batched in a single message.\n // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n (numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) +\n // Regular operations\n pendingOperations.length,\n );\n\n // Identify which renderer this update is coming from.\n // This enables roots to be mapped to renderers,\n // Which in turn enables fiber props, states, and hooks to be inspected.\n let i = 0;\n operations[i++] = rendererID;\n operations[i++] = currentRootID;\n\n // Now fill in the string table.\n // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n operations[i++] = pendingStringTableLength;\n pendingStringTable.forEach((entry, stringKey) => {\n const encodedString = entry.encodedString;\n\n // Don't use the string length.\n // It won't work for multibyte characters (like emoji).\n const length = encodedString.length;\n\n operations[i++] = length;\n for (let j = 0; j < length; j++) {\n operations[i + j] = encodedString[j];\n }\n\n i += length;\n });\n\n if (numUnmountIDs > 0) {\n // All unmounts except roots are batched in a single message.\n operations[i++] = TREE_OPERATION_REMOVE;\n // The first number is how many unmounted IDs we're gonna send.\n operations[i++] = numUnmountIDs;\n // Fill in the real unmounts in the reverse order.\n // They were inserted parents-first by React, but we want children-first.\n // So we traverse our array backwards.\n for (let j = pendingRealUnmountedIDs.length - 1; j >= 0; j--) {\n operations[i++] = pendingRealUnmountedIDs[j];\n }\n // Fill in the simulated unmounts (hidden Suspense subtrees) in their order.\n // (We want children to go before parents.)\n // They go *after* the real unmounts because we know for sure they won't be\n // children of already pushed \"real\" IDs. If they were, we wouldn't be able\n // to discover them during the traversal, as they would have been deleted.\n for (let j = 0; j < pendingSimulatedUnmountedIDs.length; j++) {\n operations[i + j] = pendingSimulatedUnmountedIDs[j];\n }\n i += pendingSimulatedUnmountedIDs.length;\n // The root ID should always be unmounted last.\n if (pendingUnmountedRootID !== null) {\n operations[i] = pendingUnmountedRootID;\n i++;\n }\n }\n // Fill in the rest of the operations.\n for (let j = 0; j < pendingOperations.length; j++) {\n operations[i + j] = pendingOperations[j];\n }\n i += pendingOperations.length;\n\n // Let the frontend know about tree operations.\n flushOrQueueOperations(operations);\n\n // Reset all of the pending state now that we've told the frontend about it.\n pendingOperations.length = 0;\n pendingRealUnmountedIDs.length = 0;\n pendingSimulatedUnmountedIDs.length = 0;\n pendingUnmountedRootID = null;\n pendingStringTable.clear();\n pendingStringTableLength = 0;\n }\n\n function getStringID(string: string | null): number {\n if (string === null) {\n return 0;\n }\n const existingEntry = pendingStringTable.get(string);\n if (existingEntry !== undefined) {\n return existingEntry.id;\n }\n\n const id = pendingStringTable.size + 1;\n const encodedString = utfEncodeString(string);\n\n pendingStringTable.set(string, {\n encodedString,\n id,\n });\n\n // The string table total length needs to account both for the string length,\n // and for the array item that contains the length itself.\n //\n // Don't use string length for this table.\n // It won't work for multibyte characters (like emoji).\n pendingStringTableLength += encodedString.length + 1;\n\n return id;\n }\n\n function recordMount(fiber: Fiber, parentFiber: Fiber | null) {\n const isRoot = fiber.tag === HostRoot;\n const id = getOrGenerateFiberID(fiber);\n\n if (__DEBUG__) {\n debug('recordMount()', fiber, parentFiber);\n }\n\n const hasOwnerMetadata = fiber.hasOwnProperty('_debugOwner');\n const isProfilingSupported = fiber.hasOwnProperty('treeBaseDuration');\n\n // Adding a new field here would require a bridge protocol version bump (a backwads breaking change).\n // Instead let's re-purpose a pre-existing field to carry more information.\n let profilingFlags = 0;\n if (isProfilingSupported) {\n profilingFlags = PROFILING_FLAG_BASIC_SUPPORT;\n if (typeof injectProfilingHooks === 'function') {\n profilingFlags |= PROFILING_FLAG_TIMELINE_SUPPORT;\n }\n }\n\n if (isRoot) {\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(ElementTypeRoot);\n pushOperation((fiber.mode & StrictModeBits) !== 0 ? 1 : 0);\n pushOperation(profilingFlags);\n pushOperation(StrictModeBits !== 0 ? 1 : 0);\n pushOperation(hasOwnerMetadata ? 1 : 0);\n\n if (isProfiling) {\n if (displayNamesByRootID !== null) {\n displayNamesByRootID.set(id, getDisplayNameForRoot(fiber));\n }\n }\n } else {\n const {key} = fiber;\n const displayName = getDisplayNameForFiber(fiber);\n const elementType = getElementTypeForFiber(fiber);\n const {_debugOwner} = fiber;\n\n // Ideally we should call getFiberIDThrows() for _debugOwner,\n // since owners are almost always higher in the tree (and so have already been processed),\n // but in some (rare) instances reported in open source, a descendant mounts before an owner.\n // Since this is a DEV only field it's probably okay to also just lazily generate and ID here if needed.\n // See https://github.com/facebook/react/issues/21445\n const ownerID =\n _debugOwner != null ? getOrGenerateFiberID(_debugOwner) : 0;\n const parentID = parentFiber ? getFiberIDThrows(parentFiber) : 0;\n\n const displayNameStringID = getStringID(displayName);\n\n // This check is a guard to handle a React element that has been modified\n // in such a way as to bypass the default stringification of the \"key\" property.\n const keyString = key === null ? null : String(key);\n const keyStringID = getStringID(keyString);\n\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(elementType);\n pushOperation(parentID);\n pushOperation(ownerID);\n pushOperation(displayNameStringID);\n pushOperation(keyStringID);\n\n // If this subtree has a new mode, let the frontend know.\n if (\n (fiber.mode & StrictModeBits) !== 0 &&\n (((parentFiber: any): Fiber).mode & StrictModeBits) === 0\n ) {\n pushOperation(TREE_OPERATION_SET_SUBTREE_MODE);\n pushOperation(id);\n pushOperation(StrictMode);\n }\n }\n\n if (isProfilingSupported) {\n idToRootMap.set(id, currentRootID);\n\n recordProfilingDurations(fiber);\n }\n }\n\n function recordUnmount(fiber: Fiber, isSimulated: boolean) {\n if (__DEBUG__) {\n debug(\n 'recordUnmount()',\n fiber,\n null,\n isSimulated ? 'unmount is simulated' : '',\n );\n }\n\n if (trackedPathMatchFiber !== null) {\n // We're in the process of trying to restore previous selection.\n // If this fiber matched but is being unmounted, there's no use trying.\n // Reset the state so we don't keep holding onto it.\n if (\n fiber === trackedPathMatchFiber ||\n fiber === trackedPathMatchFiber.alternate\n ) {\n setTrackedPath(null);\n }\n }\n\n const unsafeID = getFiberIDUnsafe(fiber);\n if (unsafeID === null) {\n // If we've never seen this Fiber, it might be inside of a legacy render Suspense fragment (so the store is not even aware of it).\n // In that case we can just ignore it or it will cause errors later on.\n // One example of this is a Lazy component that never resolves before being unmounted.\n //\n // This also might indicate a Fast Refresh force-remount scenario.\n //\n // TODO: This is fragile and can obscure actual bugs.\n return;\n }\n\n // Flow refinement.\n const id = ((unsafeID: any): number);\n const isRoot = fiber.tag === HostRoot;\n if (isRoot) {\n // Roots must be removed only after all children (pending and simulated) have been removed.\n // So we track it separately.\n pendingUnmountedRootID = id;\n } else if (!shouldFilterFiber(fiber)) {\n // To maintain child-first ordering,\n // we'll push it into one of these queues,\n // and later arrange them in the correct order.\n if (isSimulated) {\n pendingSimulatedUnmountedIDs.push(id);\n } else {\n pendingRealUnmountedIDs.push(id);\n }\n }\n\n if (!fiber._debugNeedsRemount) {\n untrackFiberID(fiber);\n\n const isProfilingSupported = fiber.hasOwnProperty('treeBaseDuration');\n if (isProfilingSupported) {\n idToRootMap.delete(id);\n idToTreeBaseDurationMap.delete(id);\n }\n }\n }\n\n function mountFiberRecursively(\n firstChild: Fiber,\n parentFiber: Fiber | null,\n traverseSiblings: boolean,\n traceNearestHostComponentUpdate: boolean,\n ) {\n // Iterate over siblings rather than recursing.\n // This reduces the chance of stack overflow for wide trees (e.g. lists with many items).\n let fiber: Fiber | null = firstChild;\n while (fiber !== null) {\n // Generate an ID even for filtered Fibers, in case it's needed later (e.g. for Profiling).\n getOrGenerateFiberID(fiber);\n\n if (__DEBUG__) {\n debug('mountFiberRecursively()', fiber, parentFiber);\n }\n\n // If we have the tree selection from previous reload, try to match this Fiber.\n // Also remember whether to do the same for siblings.\n const mightSiblingsBeOnTrackedPath =\n updateTrackedPathStateBeforeMount(fiber);\n\n const shouldIncludeInTree = !shouldFilterFiber(fiber);\n if (shouldIncludeInTree) {\n recordMount(fiber, parentFiber);\n }\n\n if (traceUpdatesEnabled) {\n if (traceNearestHostComponentUpdate) {\n const elementType = getElementTypeForFiber(fiber);\n // If an ancestor updated, we should mark the nearest host nodes for highlighting.\n if (elementType === ElementTypeHostComponent) {\n traceUpdatesForNodes.add(fiber.stateNode);\n traceNearestHostComponentUpdate = false;\n }\n }\n\n // We intentionally do not re-enable the traceNearestHostComponentUpdate flag in this branch,\n // because we don't want to highlight every host node inside of a newly mounted subtree.\n }\n\n const isSuspense = fiber.tag === ReactTypeOfWork.SuspenseComponent;\n if (isSuspense) {\n const isTimedOut = fiber.memoizedState !== null;\n if (isTimedOut) {\n // Special case: if Suspense mounts in a timed-out state,\n // get the fallback child from the inner fragment and mount\n // it as if it was our own child. Updates handle this too.\n const primaryChildFragment = fiber.child;\n const fallbackChildFragment = primaryChildFragment\n ? primaryChildFragment.sibling\n : null;\n const fallbackChild = fallbackChildFragment\n ? fallbackChildFragment.child\n : null;\n if (fallbackChild !== null) {\n mountFiberRecursively(\n fallbackChild,\n shouldIncludeInTree ? fiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n }\n } else {\n let primaryChild: Fiber | null = null;\n const areSuspenseChildrenConditionallyWrapped =\n OffscreenComponent === -1;\n if (areSuspenseChildrenConditionallyWrapped) {\n primaryChild = fiber.child;\n } else if (fiber.child !== null) {\n primaryChild = fiber.child.child;\n }\n if (primaryChild !== null) {\n mountFiberRecursively(\n primaryChild,\n shouldIncludeInTree ? fiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n }\n }\n } else {\n if (fiber.child !== null) {\n mountFiberRecursively(\n fiber.child,\n shouldIncludeInTree ? fiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n }\n }\n\n // We're exiting this Fiber now, and entering its siblings.\n // If we have selection to restore, we might need to re-activate tracking.\n updateTrackedPathStateAfterMount(mightSiblingsBeOnTrackedPath);\n\n fiber = traverseSiblings ? fiber.sibling : null;\n }\n }\n\n // We use this to simulate unmounting for Suspense trees\n // when we switch from primary to fallback.\n function unmountFiberChildrenRecursively(fiber: Fiber) {\n if (__DEBUG__) {\n debug('unmountFiberChildrenRecursively()', fiber);\n }\n\n // We might meet a nested Suspense on our way.\n const isTimedOutSuspense =\n fiber.tag === ReactTypeOfWork.SuspenseComponent &&\n fiber.memoizedState !== null;\n\n let child = fiber.child;\n if (isTimedOutSuspense) {\n // If it's showing fallback tree, let's traverse it instead.\n const primaryChildFragment = fiber.child;\n const fallbackChildFragment = primaryChildFragment\n ? primaryChildFragment.sibling\n : null;\n // Skip over to the real Fiber child.\n child = fallbackChildFragment ? fallbackChildFragment.child : null;\n }\n\n while (child !== null) {\n // Record simulated unmounts children-first.\n // We skip nodes without return because those are real unmounts.\n if (child.return !== null) {\n unmountFiberChildrenRecursively(child);\n recordUnmount(child, true);\n }\n child = child.sibling;\n }\n }\n\n function recordProfilingDurations(fiber: Fiber) {\n const id = getFiberIDThrows(fiber);\n const {actualDuration, treeBaseDuration} = fiber;\n\n idToTreeBaseDurationMap.set(id, treeBaseDuration || 0);\n\n if (isProfiling) {\n const {alternate} = fiber;\n\n // It's important to update treeBaseDuration even if the current Fiber did not render,\n // because it's possible that one of its descendants did.\n if (\n alternate == null ||\n treeBaseDuration !== alternate.treeBaseDuration\n ) {\n // Tree base duration updates are included in the operations typed array.\n // So we have to convert them from milliseconds to microseconds so we can send them as ints.\n const convertedTreeBaseDuration = Math.floor(\n (treeBaseDuration || 0) * 1000,\n );\n pushOperation(TREE_OPERATION_UPDATE_TREE_BASE_DURATION);\n pushOperation(id);\n pushOperation(convertedTreeBaseDuration);\n }\n\n if (alternate == null || didFiberRender(alternate, fiber)) {\n if (actualDuration != null) {\n // The actual duration reported by React includes time spent working on children.\n // This is useful information, but it's also useful to be able to exclude child durations.\n // The frontend can't compute this, since the immediate children may have been filtered out.\n // So we need to do this on the backend.\n // Note that this calculated self duration is not the same thing as the base duration.\n // The two are calculated differently (tree duration does not accumulate).\n let selfDuration = actualDuration;\n let child = fiber.child;\n while (child !== null) {\n selfDuration -= child.actualDuration || 0;\n child = child.sibling;\n }\n\n // If profiling is active, store durations for elements that were rendered during the commit.\n // Note that we should do this for any fiber we performed work on, regardless of its actualDuration value.\n // In some cases actualDuration might be 0 for fibers we worked on (particularly if we're using Date.now)\n // In other cases (e.g. Memo) actualDuration might be greater than 0 even if we \"bailed out\".\n const metadata =\n ((currentCommitProfilingMetadata: any): CommitProfilingData);\n metadata.durations.push(id, actualDuration, selfDuration);\n metadata.maxActualDuration = Math.max(\n metadata.maxActualDuration,\n actualDuration,\n );\n\n if (recordChangeDescriptions) {\n const changeDescription = getChangeDescription(alternate, fiber);\n if (changeDescription !== null) {\n if (metadata.changeDescriptions !== null) {\n metadata.changeDescriptions.set(id, changeDescription);\n }\n }\n\n updateContextsForFiber(fiber);\n }\n }\n }\n }\n }\n\n function recordResetChildren(fiber: Fiber, childSet: Fiber) {\n if (__DEBUG__) {\n debug('recordResetChildren()', childSet, fiber);\n }\n // The frontend only really cares about the displayName, key, and children.\n // The first two don't really change, so we are only concerned with the order of children here.\n // This is trickier than a simple comparison though, since certain types of fibers are filtered.\n const nextChildren: Array = [];\n\n // This is a naive implementation that shallowly recourses children.\n // We might want to revisit this if it proves to be too inefficient.\n let child: null | Fiber = childSet;\n while (child !== null) {\n findReorderedChildrenRecursively(child, nextChildren);\n child = child.sibling;\n }\n\n const numChildren = nextChildren.length;\n if (numChildren < 2) {\n // No need to reorder.\n return;\n }\n pushOperation(TREE_OPERATION_REORDER_CHILDREN);\n pushOperation(getFiberIDThrows(fiber));\n pushOperation(numChildren);\n for (let i = 0; i < nextChildren.length; i++) {\n pushOperation(nextChildren[i]);\n }\n }\n\n function findReorderedChildrenRecursively(\n fiber: Fiber,\n nextChildren: Array,\n ) {\n if (!shouldFilterFiber(fiber)) {\n nextChildren.push(getFiberIDThrows(fiber));\n } else {\n let child = fiber.child;\n const isTimedOutSuspense =\n fiber.tag === SuspenseComponent && fiber.memoizedState !== null;\n if (isTimedOutSuspense) {\n // Special case: if Suspense mounts in a timed-out state,\n // get the fallback child from the inner fragment,\n // and skip over the primary child.\n const primaryChildFragment = fiber.child;\n const fallbackChildFragment = primaryChildFragment\n ? primaryChildFragment.sibling\n : null;\n const fallbackChild = fallbackChildFragment\n ? fallbackChildFragment.child\n : null;\n if (fallbackChild !== null) {\n child = fallbackChild;\n }\n }\n while (child !== null) {\n findReorderedChildrenRecursively(child, nextChildren);\n child = child.sibling;\n }\n }\n }\n\n // Returns whether closest unfiltered fiber parent needs to reset its child list.\n function updateFiberRecursively(\n nextFiber: Fiber,\n prevFiber: Fiber,\n parentFiber: Fiber | null,\n traceNearestHostComponentUpdate: boolean,\n ): boolean {\n const id = getOrGenerateFiberID(nextFiber);\n\n if (__DEBUG__) {\n debug('updateFiberRecursively()', nextFiber, parentFiber);\n }\n\n if (traceUpdatesEnabled) {\n const elementType = getElementTypeForFiber(nextFiber);\n if (traceNearestHostComponentUpdate) {\n // If an ancestor updated, we should mark the nearest host nodes for highlighting.\n if (elementType === ElementTypeHostComponent) {\n traceUpdatesForNodes.add(nextFiber.stateNode);\n traceNearestHostComponentUpdate = false;\n }\n } else {\n if (\n elementType === ElementTypeFunction ||\n elementType === ElementTypeClass ||\n elementType === ElementTypeContext ||\n elementType === ElementTypeMemo ||\n elementType === ElementTypeForwardRef\n ) {\n // Otherwise if this is a traced ancestor, flag for the nearest host descendant(s).\n traceNearestHostComponentUpdate = didFiberRender(\n prevFiber,\n nextFiber,\n );\n }\n }\n }\n\n if (\n mostRecentlyInspectedElement !== null &&\n mostRecentlyInspectedElement.id === id &&\n didFiberRender(prevFiber, nextFiber)\n ) {\n // If this Fiber has updated, clear cached inspected data.\n // If it is inspected again, it may need to be re-run to obtain updated hooks values.\n hasElementUpdatedSinceLastInspected = true;\n }\n\n const shouldIncludeInTree = !shouldFilterFiber(nextFiber);\n const isSuspense = nextFiber.tag === SuspenseComponent;\n let shouldResetChildren = false;\n // The behavior of timed-out Suspense trees is unique.\n // Rather than unmount the timed out content (and possibly lose important state),\n // React re-parents this content within a hidden Fragment while the fallback is showing.\n // This behavior doesn't need to be observable in the DevTools though.\n // It might even result in a bad user experience for e.g. node selection in the Elements panel.\n // The easiest fix is to strip out the intermediate Fragment fibers,\n // so the Elements panel and Profiler don't need to special case them.\n // Suspense components only have a non-null memoizedState if they're timed-out.\n const prevDidTimeout = isSuspense && prevFiber.memoizedState !== null;\n const nextDidTimeOut = isSuspense && nextFiber.memoizedState !== null;\n // The logic below is inspired by the code paths in updateSuspenseComponent()\n // inside ReactFiberBeginWork in the React source code.\n if (prevDidTimeout && nextDidTimeOut) {\n // Fallback -> Fallback:\n // 1. Reconcile fallback set.\n const nextFiberChild = nextFiber.child;\n const nextFallbackChildSet = nextFiberChild\n ? nextFiberChild.sibling\n : null;\n // Note: We can't use nextFiber.child.sibling.alternate\n // because the set is special and alternate may not exist.\n const prevFiberChild = prevFiber.child;\n const prevFallbackChildSet = prevFiberChild\n ? prevFiberChild.sibling\n : null;\n if (\n nextFallbackChildSet != null &&\n prevFallbackChildSet != null &&\n updateFiberRecursively(\n nextFallbackChildSet,\n prevFallbackChildSet,\n nextFiber,\n traceNearestHostComponentUpdate,\n )\n ) {\n shouldResetChildren = true;\n }\n } else if (prevDidTimeout && !nextDidTimeOut) {\n // Fallback -> Primary:\n // 1. Unmount fallback set\n // Note: don't emulate fallback unmount because React actually did it.\n // 2. Mount primary set\n const nextPrimaryChildSet = nextFiber.child;\n if (nextPrimaryChildSet !== null) {\n mountFiberRecursively(\n nextPrimaryChildSet,\n shouldIncludeInTree ? nextFiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n }\n shouldResetChildren = true;\n } else if (!prevDidTimeout && nextDidTimeOut) {\n // Primary -> Fallback:\n // 1. Hide primary set\n // This is not a real unmount, so it won't get reported by React.\n // We need to manually walk the previous tree and record unmounts.\n unmountFiberChildrenRecursively(prevFiber);\n // 2. Mount fallback set\n const nextFiberChild = nextFiber.child;\n const nextFallbackChildSet = nextFiberChild\n ? nextFiberChild.sibling\n : null;\n if (nextFallbackChildSet != null) {\n mountFiberRecursively(\n nextFallbackChildSet,\n shouldIncludeInTree ? nextFiber : parentFiber,\n true,\n traceNearestHostComponentUpdate,\n );\n shouldResetChildren = true;\n }\n } else {\n // Common case: Primary -> Primary.\n // This is the same code path as for non-Suspense fibers.\n if (nextFiber.child !== prevFiber.child) {\n // If the first child is different, we need to traverse them.\n // Each next child will be either a new child (mount) or an alternate (update).\n let nextChild = nextFiber.child;\n let prevChildAtSameIndex = prevFiber.child;\n while (nextChild) {\n // We already know children will be referentially different because\n // they are either new mounts or alternates of previous children.\n // Schedule updates and mounts depending on whether alternates exist.\n // We don't track deletions here because they are reported separately.\n if (nextChild.alternate) {\n const prevChild = nextChild.alternate;\n if (\n updateFiberRecursively(\n nextChild,\n prevChild,\n shouldIncludeInTree ? nextFiber : parentFiber,\n traceNearestHostComponentUpdate,\n )\n ) {\n // If a nested tree child order changed but it can't handle its own\n // child order invalidation (e.g. because it's filtered out like host nodes),\n // propagate the need to reset child order upwards to this Fiber.\n shouldResetChildren = true;\n }\n // However we also keep track if the order of the children matches\n // the previous order. They are always different referentially, but\n // if the instances line up conceptually we'll want to know that.\n if (prevChild !== prevChildAtSameIndex) {\n shouldResetChildren = true;\n }\n } else {\n mountFiberRecursively(\n nextChild,\n shouldIncludeInTree ? nextFiber : parentFiber,\n false,\n traceNearestHostComponentUpdate,\n );\n shouldResetChildren = true;\n }\n // Try the next child.\n nextChild = nextChild.sibling;\n // Advance the pointer in the previous list so that we can\n // keep comparing if they line up.\n if (!shouldResetChildren && prevChildAtSameIndex !== null) {\n prevChildAtSameIndex = prevChildAtSameIndex.sibling;\n }\n }\n // If we have no more children, but used to, they don't line up.\n if (prevChildAtSameIndex !== null) {\n shouldResetChildren = true;\n }\n } else {\n if (traceUpdatesEnabled) {\n // If we're tracing updates and we've bailed out before reaching a host node,\n // we should fall back to recursively marking the nearest host descendants for highlight.\n if (traceNearestHostComponentUpdate) {\n const hostFibers = findAllCurrentHostFibers(\n getFiberIDThrows(nextFiber),\n );\n hostFibers.forEach(hostFiber => {\n traceUpdatesForNodes.add(hostFiber.stateNode);\n });\n }\n }\n }\n }\n\n if (shouldIncludeInTree) {\n const isProfilingSupported = nextFiber.hasOwnProperty('treeBaseDuration');\n if (isProfilingSupported) {\n recordProfilingDurations(nextFiber);\n }\n }\n if (shouldResetChildren) {\n // We need to crawl the subtree for closest non-filtered Fibers\n // so that we can display them in a flat children set.\n if (shouldIncludeInTree) {\n // Normally, search for children from the rendered child.\n let nextChildSet = nextFiber.child;\n if (nextDidTimeOut) {\n // Special case: timed-out Suspense renders the fallback set.\n const nextFiberChild = nextFiber.child;\n nextChildSet = nextFiberChild ? nextFiberChild.sibling : null;\n }\n if (nextChildSet != null) {\n recordResetChildren(nextFiber, nextChildSet);\n }\n // We've handled the child order change for this Fiber.\n // Since it's included, there's no need to invalidate parent child order.\n return false;\n } else {\n // Let the closest unfiltered parent Fiber reset its child order instead.\n return true;\n }\n } else {\n return false;\n }\n }\n\n function cleanup() {\n // We don't patch any methods so there is no cleanup.\n }\n\n function rootSupportsProfiling(root: any) {\n if (root.memoizedInteractions != null) {\n // v16 builds include this field for the scheduler/tracing API.\n return true;\n } else if (\n root.current != null &&\n root.current.hasOwnProperty('treeBaseDuration')\n ) {\n // The scheduler/tracing API was removed in v17 though\n // so we need to check a non-root Fiber.\n return true;\n } else {\n return false;\n }\n }\n\n function flushInitialOperations() {\n const localPendingOperationsQueue = pendingOperationsQueue;\n\n pendingOperationsQueue = null;\n\n if (\n localPendingOperationsQueue !== null &&\n localPendingOperationsQueue.length > 0\n ) {\n // We may have already queued up some operations before the frontend connected\n // If so, let the frontend know about them.\n localPendingOperationsQueue.forEach(operations => {\n hook.emit('operations', operations);\n });\n } else {\n // Before the traversals, remember to start tracking\n // our path in case we have selection to restore.\n if (trackedPath !== null) {\n mightBeOnTrackedPath = true;\n }\n // If we have not been profiling, then we can just walk the tree and build up its current state as-is.\n hook.getFiberRoots(rendererID).forEach(root => {\n currentRootID = getOrGenerateFiberID(root.current);\n setRootPseudoKey(currentRootID, root.current);\n\n // Handle multi-renderer edge-case where only some v16 renderers support profiling.\n if (isProfiling && rootSupportsProfiling(root)) {\n // If profiling is active, store commit time and duration.\n // The frontend may request this information after profiling has stopped.\n currentCommitProfilingMetadata = {\n changeDescriptions: recordChangeDescriptions ? new Map() : null,\n durations: [],\n commitTime: getCurrentTime() - profilingStartTime,\n maxActualDuration: 0,\n priorityLevel: null,\n updaters: getUpdatersList(root),\n effectDuration: null,\n passiveEffectDuration: null,\n };\n }\n\n mountFiberRecursively(root.current, null, false, false);\n flushPendingEvents(root);\n currentRootID = -1;\n });\n }\n }\n\n function getUpdatersList(root: any): Array | null {\n return root.memoizedUpdaters != null\n ? Array.from(root.memoizedUpdaters)\n .filter(fiber => getFiberIDUnsafe(fiber) !== null)\n .map(fiberToSerializedElement)\n : null;\n }\n\n function handleCommitFiberUnmount(fiber: any) {\n // If the untrackFiberSet already has the unmounted Fiber, this means we've already\n // recordedUnmount, so we don't need to do it again. If we don't do this, we might\n // end up double-deleting Fibers in some cases (like Legacy Suspense).\n if (!untrackFibersSet.has(fiber)) {\n // This is not recursive.\n // We can't traverse fibers after unmounting so instead\n // we rely on React telling us about each unmount.\n recordUnmount(fiber, false);\n }\n }\n\n function handlePostCommitFiberRoot(root: any) {\n if (isProfiling && rootSupportsProfiling(root)) {\n if (currentCommitProfilingMetadata !== null) {\n const {effectDuration, passiveEffectDuration} =\n getEffectDurations(root);\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentCommitProfilingMetadata.effectDuration = effectDuration;\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n currentCommitProfilingMetadata.passiveEffectDuration =\n passiveEffectDuration;\n }\n }\n }\n\n function handleCommitFiberRoot(root: any, priorityLevel: void | number) {\n const current = root.current;\n const alternate = current.alternate;\n\n // Flush any pending Fibers that we are untracking before processing the new commit.\n // If we don't do this, we might end up double-deleting Fibers in some cases (like Legacy Suspense).\n untrackFibers();\n\n currentRootID = getOrGenerateFiberID(current);\n\n // Before the traversals, remember to start tracking\n // our path in case we have selection to restore.\n if (trackedPath !== null) {\n mightBeOnTrackedPath = true;\n }\n\n if (traceUpdatesEnabled) {\n traceUpdatesForNodes.clear();\n }\n\n // Handle multi-renderer edge-case where only some v16 renderers support profiling.\n const isProfilingSupported = rootSupportsProfiling(root);\n\n if (isProfiling && isProfilingSupported) {\n // If profiling is active, store commit time and duration.\n // The frontend may request this information after profiling has stopped.\n currentCommitProfilingMetadata = {\n changeDescriptions: recordChangeDescriptions ? new Map() : null,\n durations: [],\n commitTime: getCurrentTime() - profilingStartTime,\n maxActualDuration: 0,\n priorityLevel:\n priorityLevel == null ? null : formatPriorityLevel(priorityLevel),\n\n updaters: getUpdatersList(root),\n\n // Initialize to null; if new enough React version is running,\n // these values will be read during separate handlePostCommitFiberRoot() call.\n effectDuration: null,\n passiveEffectDuration: null,\n };\n }\n\n if (alternate) {\n // TODO: relying on this seems a bit fishy.\n const wasMounted =\n alternate.memoizedState != null &&\n alternate.memoizedState.element != null &&\n // A dehydrated root is not considered mounted\n alternate.memoizedState.isDehydrated !== true;\n const isMounted =\n current.memoizedState != null &&\n current.memoizedState.element != null &&\n // A dehydrated root is not considered mounted\n current.memoizedState.isDehydrated !== true;\n if (!wasMounted && isMounted) {\n // Mount a new root.\n setRootPseudoKey(currentRootID, current);\n mountFiberRecursively(current, null, false, false);\n } else if (wasMounted && isMounted) {\n // Update an existing root.\n updateFiberRecursively(current, alternate, null, false);\n } else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n removeRootPseudoKey(currentRootID);\n recordUnmount(current, false);\n }\n } else {\n // Mount a new root.\n setRootPseudoKey(currentRootID, current);\n mountFiberRecursively(current, null, false, false);\n }\n\n if (isProfiling && isProfilingSupported) {\n if (!shouldBailoutWithPendingOperations()) {\n const commitProfilingMetadata =\n ((rootToCommitProfilingMetadataMap: any): CommitProfilingMetadataMap).get(\n currentRootID,\n );\n\n if (commitProfilingMetadata != null) {\n commitProfilingMetadata.push(\n ((currentCommitProfilingMetadata: any): CommitProfilingData),\n );\n } else {\n ((rootToCommitProfilingMetadataMap: any): CommitProfilingMetadataMap).set(\n currentRootID,\n [((currentCommitProfilingMetadata: any): CommitProfilingData)],\n );\n }\n }\n }\n\n // We're done here.\n flushPendingEvents(root);\n\n if (traceUpdatesEnabled) {\n hook.emit('traceUpdates', traceUpdatesForNodes);\n }\n\n currentRootID = -1;\n }\n\n function findAllCurrentHostFibers(id: number): $ReadOnlyArray {\n const fibers = [];\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (!fiber) {\n return fibers;\n }\n\n // Next we'll drill down this component to find all HostComponent/Text.\n let node: Fiber = fiber;\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText) {\n fibers.push(node);\n } else if (node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === fiber) {\n return fibers;\n }\n while (!node.sibling) {\n if (!node.return || node.return === fiber) {\n return fibers;\n }\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n // Flow needs the return here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n return fibers;\n }\n\n function findNativeNodesForFiberID(id: number) {\n try {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber === null) {\n return null;\n }\n\n const hostFibers = findAllCurrentHostFibers(id);\n return hostFibers.map(hostFiber => hostFiber.stateNode).filter(Boolean);\n } catch (err) {\n // The fiber might have unmounted by now.\n return null;\n }\n }\n\n function getDisplayNameForFiberID(id: number): null | string {\n const fiber = idToArbitraryFiberMap.get(id);\n return fiber != null ? getDisplayNameForFiber(fiber) : null;\n }\n\n function getFiberForNative(hostInstance: NativeType) {\n return renderer.findFiberByHostInstance(hostInstance);\n }\n\n function getFiberIDForNative(\n hostInstance: NativeType,\n findNearestUnfilteredAncestor: boolean = false,\n ) {\n let fiber = renderer.findFiberByHostInstance(hostInstance);\n if (fiber != null) {\n if (findNearestUnfilteredAncestor) {\n while (fiber !== null && shouldFilterFiber(fiber)) {\n fiber = fiber.return;\n }\n }\n return getFiberIDThrows(((fiber: any): Fiber));\n }\n return null;\n }\n\n // This function is copied from React and should be kept in sync:\n // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n function assertIsMounted(fiber: Fiber) {\n if (getNearestMountedFiber(fiber) !== fiber) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n }\n\n // This function is copied from React and should be kept in sync:\n // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n function getNearestMountedFiber(fiber: Fiber): null | Fiber {\n let node = fiber;\n let nearestMounted: null | Fiber = fiber;\n if (!fiber.alternate) {\n // If there is no alternate, this might be a new tree that isn't inserted\n // yet. If it is, then it will have a pending insertion effect on it.\n let nextNode: Fiber = node;\n do {\n node = nextNode;\n // TODO: This function, and these flags, are a leaked implementation\n // detail. Once we start releasing DevTools in lockstep with React, we\n // should import a function from the reconciler instead.\n const Placement = 0b000000000000000000000000010;\n const Hydrating = 0b000000000000001000000000000;\n if ((node.flags & (Placement | Hydrating)) !== 0) {\n // This is an insertion or in-progress hydration. The nearest possible\n // mounted fiber is the parent but we need to continue to figure out\n // if that one is still mounted.\n nearestMounted = node.return;\n }\n // $FlowFixMe[incompatible-type] we bail out when we get a null\n nextNode = node.return;\n } while (nextNode);\n } else {\n while (node.return) {\n node = node.return;\n }\n }\n if (node.tag === HostRoot) {\n // TODO: Check if this was a nested HostRoot when used with\n // renderContainerIntoSubtree.\n return nearestMounted;\n }\n // If we didn't hit the root, that means that we're in an disconnected tree\n // that has been unmounted.\n return null;\n }\n\n // This function is copied from React and should be kept in sync:\n // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n // It would be nice if we updated React to inject this function directly (vs just indirectly via findDOMNode).\n // BEGIN copied code\n function findCurrentFiberUsingSlowPathById(id: number): Fiber | null {\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n console.warn(`Could not find Fiber with id \"${id}\"`);\n return null;\n }\n\n const alternate = fiber.alternate;\n if (!alternate) {\n // If there is no alternate, then we only need to check if it is mounted.\n const nearestMounted = getNearestMountedFiber(fiber);\n\n if (nearestMounted === null) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (nearestMounted !== fiber) {\n return null;\n }\n return fiber;\n }\n // If we have two possible branches, we'll walk backwards up to the root\n // to see what path the root points to. On the way we may hit one of the\n // special cases and we'll deal with them.\n let a: Fiber = fiber;\n let b: Fiber = alternate;\n while (true) {\n const parentA = a.return;\n if (parentA === null) {\n // We're at the root.\n break;\n }\n const parentB = parentA.alternate;\n if (parentB === null) {\n // There is no alternate. This is an unusual case. Currently, it only\n // happens when a Suspense component is hidden. An extra fragment fiber\n // is inserted in between the Suspense fiber and its children. Skip\n // over this extra fragment fiber and proceed to the next parent.\n const nextParent = parentA.return;\n if (nextParent !== null) {\n a = b = nextParent;\n continue;\n }\n // If there's no parent, we're at the root.\n break;\n }\n\n // If both copies of the parent fiber point to the same child, we can\n // assume that the child is current. This happens when we bailout on low\n // priority: the bailed out fiber's child reuses the current child.\n if (parentA.child === parentB.child) {\n let child = parentA.child;\n while (child) {\n if (child === a) {\n // We've determined that A is the current branch.\n assertIsMounted(parentA);\n return fiber;\n }\n if (child === b) {\n // We've determined that B is the current branch.\n assertIsMounted(parentA);\n return alternate;\n }\n child = child.sibling;\n }\n\n // We should never have an alternate for any mounting node. So the only\n // way this could possibly happen is if this was unmounted, if at all.\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (a.return !== b.return) {\n // The return pointer of A and the return pointer of B point to different\n // fibers. We assume that return pointers never criss-cross, so A must\n // belong to the child set of A.return, and B must belong to the child\n // set of B.return.\n a = parentA;\n b = parentB;\n } else {\n // The return pointers point to the same fiber. We'll have to use the\n // default, slow path: scan the child sets of each parent alternate to see\n // which child belongs to which set.\n //\n // Search parent A's child set\n let didFindChild = false;\n let child = parentA.child;\n while (child) {\n if (child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n if (child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n child = child.sibling;\n }\n if (!didFindChild) {\n // Search parent B's child set\n child = parentB.child;\n while (child) {\n if (child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n if (child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n child = child.sibling;\n }\n\n if (!didFindChild) {\n throw new Error(\n 'Child was not found in either parent set. This indicates a bug ' +\n 'in React related to the return pointer. Please file an issue.',\n );\n }\n }\n }\n\n if (a.alternate !== b) {\n throw new Error(\n \"Return fibers should always be each others' alternates. \" +\n 'This error is likely caused by a bug in React. Please file an issue.',\n );\n }\n }\n\n // If the root is not a host container, we're in a disconnected tree. I.e.\n // unmounted.\n if (a.tag !== HostRoot) {\n throw new Error('Unable to find node on an unmounted component.');\n }\n\n if (a.stateNode.current === a) {\n // We've determined that A is the current branch.\n return fiber;\n }\n // Otherwise B has to be current branch.\n return alternate;\n }\n\n // END copied code\n\n function prepareViewAttributeSource(\n id: number,\n path: Array,\n ): void {\n if (isMostRecentlyInspectedElement(id)) {\n window.$attribute = getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n );\n }\n }\n\n function prepareViewElementSource(id: number): void {\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n console.warn(`Could not find Fiber with id \"${id}\"`);\n return;\n }\n\n const {elementType, tag, type} = fiber;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n case IndeterminateComponent:\n case FunctionComponent:\n global.$type = type;\n break;\n case ForwardRef:\n global.$type = type.render;\n break;\n case MemoComponent:\n case SimpleMemoComponent:\n global.$type =\n elementType != null && elementType.type != null\n ? elementType.type\n : type;\n break;\n default:\n global.$type = null;\n break;\n }\n }\n\n function fiberToSerializedElement(fiber: Fiber): SerializedElement {\n return {\n displayName: getDisplayNameForFiber(fiber) || 'Anonymous',\n id: getFiberIDThrows(fiber),\n key: fiber.key,\n type: getElementTypeForFiber(fiber),\n };\n }\n\n function getOwnersList(id: number): Array | null {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber == null) {\n return null;\n }\n\n const {_debugOwner} = fiber;\n\n const owners: Array = [fiberToSerializedElement(fiber)];\n\n if (_debugOwner) {\n let owner: null | Fiber = _debugOwner;\n while (owner !== null) {\n owners.unshift(fiberToSerializedElement(owner));\n owner = owner._debugOwner || null;\n }\n }\n\n return owners;\n }\n\n // Fast path props lookup for React Native style editor.\n // Could use inspectElementRaw() but that would require shallow rendering hooks components,\n // and could also mess with memoization.\n function getInstanceAndStyle(id: number): InstanceAndStyle {\n let instance = null;\n let style = null;\n\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber !== null) {\n instance = fiber.stateNode;\n\n if (fiber.memoizedProps !== null) {\n style = fiber.memoizedProps.style;\n }\n }\n\n return {instance, style};\n }\n\n function isErrorBoundary(fiber: Fiber): boolean {\n const {tag, type} = fiber;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n const instance = fiber.stateNode;\n return (\n typeof type.getDerivedStateFromError === 'function' ||\n (instance !== null &&\n typeof instance.componentDidCatch === 'function')\n );\n default:\n return false;\n }\n }\n\n function getNearestErrorBoundaryID(fiber: Fiber): number | null {\n let parent = fiber.return;\n while (parent !== null) {\n if (isErrorBoundary(parent)) {\n return getFiberIDUnsafe(parent);\n }\n parent = parent.return;\n }\n return null;\n }\n\n function inspectElementRaw(id: number): InspectedElement | null {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber == null) {\n return null;\n }\n\n const {\n _debugOwner,\n _debugSource,\n stateNode,\n key,\n memoizedProps,\n memoizedState,\n dependencies,\n tag,\n type,\n } = fiber;\n\n const elementType = getElementTypeForFiber(fiber);\n\n const usesHooks =\n (tag === FunctionComponent ||\n tag === SimpleMemoComponent ||\n tag === ForwardRef) &&\n (!!memoizedState || !!dependencies);\n\n // TODO Show custom UI for Cache like we do for Suspense\n // For now, just hide state data entirely since it's not meant to be inspected.\n const showState = !usesHooks && tag !== CacheComponent;\n\n const typeSymbol = getTypeSymbol(type);\n\n let canViewSource = false;\n let context = null;\n if (\n tag === ClassComponent ||\n tag === FunctionComponent ||\n tag === IncompleteClassComponent ||\n tag === IndeterminateComponent ||\n tag === MemoComponent ||\n tag === ForwardRef ||\n tag === SimpleMemoComponent\n ) {\n canViewSource = true;\n if (stateNode && stateNode.context != null) {\n // Don't show an empty context object for class components that don't use the context API.\n const shouldHideContext =\n elementType === ElementTypeClass &&\n !(type.contextTypes || type.contextType);\n\n if (!shouldHideContext) {\n context = stateNode.context;\n }\n }\n } else if (\n typeSymbol === CONTEXT_NUMBER ||\n typeSymbol === CONTEXT_SYMBOL_STRING\n ) {\n // 16.3-16.5 read from \"type\" because the Consumer is the actual context object.\n // 16.6+ should read from \"type._context\" because Consumer can be different (in DEV).\n // NOTE Keep in sync with getDisplayNameForFiber()\n const consumerResolvedContext = type._context || type;\n\n // Global context value.\n context = consumerResolvedContext._currentValue || null;\n\n // Look for overridden value.\n let current = ((fiber: any): Fiber).return;\n while (current !== null) {\n const currentType = current.type;\n const currentTypeSymbol = getTypeSymbol(currentType);\n if (\n currentTypeSymbol === PROVIDER_NUMBER ||\n currentTypeSymbol === PROVIDER_SYMBOL_STRING\n ) {\n // 16.3.0 exposed the context object as \"context\"\n // PR #12501 changed it to \"_context\" for 16.3.1+\n // NOTE Keep in sync with getDisplayNameForFiber()\n const providerResolvedContext =\n currentType._context || currentType.context;\n if (providerResolvedContext === consumerResolvedContext) {\n context = current.memoizedProps.value;\n break;\n }\n }\n\n current = current.return;\n }\n }\n\n let hasLegacyContext = false;\n if (context !== null) {\n hasLegacyContext = !!type.contextTypes;\n\n // To simplify hydration and display logic for context, wrap in a value object.\n // Otherwise simple values (e.g. strings, booleans) become harder to handle.\n context = {value: context};\n }\n\n let owners = null;\n if (_debugOwner) {\n owners = ([]: Array);\n let owner: null | Fiber = _debugOwner;\n while (owner !== null) {\n owners.push(fiberToSerializedElement(owner));\n owner = owner._debugOwner || null;\n }\n }\n\n const isTimedOutSuspense =\n tag === SuspenseComponent && memoizedState !== null;\n\n let hooks = null;\n if (usesHooks) {\n const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n // Temporarily disable all console logging before re-running the hook.\n for (const method in console) {\n try {\n originalConsoleMethods[method] = console[method];\n // $FlowFixMe[prop-missing]\n console[method] = () => {};\n } catch (error) {}\n }\n\n try {\n hooks = inspectHooksOfFiber(\n fiber,\n (renderer.currentDispatcherRef: any),\n true, // Include source location info for hooks\n );\n } finally {\n // Restore original console functionality.\n for (const method in originalConsoleMethods) {\n try {\n // $FlowFixMe[prop-missing]\n console[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n }\n }\n\n let rootType = null;\n let current = fiber;\n while (current.return !== null) {\n current = current.return;\n }\n const fiberRoot = current.stateNode;\n if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n rootType = fiberRoot._debugRootType;\n }\n\n const errors = fiberIDToErrorsMap.get(id) || new Map();\n const warnings = fiberIDToWarningsMap.get(id) || new Map();\n\n let isErrored = false;\n let targetErrorBoundaryID;\n if (isErrorBoundary(fiber)) {\n // if the current inspected element is an error boundary,\n // either that we want to use it to toggle off error state\n // or that we allow to force error state on it if it's within another\n // error boundary\n //\n // TODO: This flag is a leaked implementation detail. Once we start\n // releasing DevTools in lockstep with React, we should import a function\n // from the reconciler instead.\n const DidCapture = 0b000000000000000000010000000;\n isErrored =\n (fiber.flags & DidCapture) !== 0 ||\n forceErrorForFiberIDs.get(id) === true;\n targetErrorBoundaryID = isErrored ? id : getNearestErrorBoundaryID(fiber);\n } else {\n targetErrorBoundaryID = getNearestErrorBoundaryID(fiber);\n }\n\n const plugins: Plugins = {\n stylex: null,\n };\n\n if (enableStyleXFeatures) {\n if (memoizedProps.hasOwnProperty('xstyle')) {\n plugins.stylex = getStyleXData(memoizedProps.xstyle);\n }\n }\n\n return {\n id,\n\n // Does the current renderer support editable hooks and function props?\n canEditHooks: typeof overrideHookState === 'function',\n canEditFunctionProps: typeof overrideProps === 'function',\n\n // Does the current renderer support advanced editing interface?\n canEditHooksAndDeletePaths:\n typeof overrideHookStateDeletePath === 'function',\n canEditHooksAndRenamePaths:\n typeof overrideHookStateRenamePath === 'function',\n canEditFunctionPropsDeletePaths:\n typeof overridePropsDeletePath === 'function',\n canEditFunctionPropsRenamePaths:\n typeof overridePropsRenamePath === 'function',\n\n canToggleError: supportsTogglingError && targetErrorBoundaryID != null,\n // Is this error boundary in error state.\n isErrored,\n targetErrorBoundaryID,\n\n canToggleSuspense:\n supportsTogglingSuspense &&\n // If it's showing the real content, we can always flip fallback.\n (!isTimedOutSuspense ||\n // If it's showing fallback because we previously forced it to,\n // allow toggling it back to remove the fallback override.\n forceFallbackForSuspenseIDs.has(id)),\n\n // Can view component source location.\n canViewSource,\n\n // Does the component have legacy context attached to it.\n hasLegacyContext,\n\n key: key != null ? key : null,\n\n displayName: getDisplayNameForFiber(fiber),\n type: elementType,\n\n // Inspectable properties.\n // TODO Review sanitization approach for the below inspectable values.\n context,\n hooks,\n props: memoizedProps,\n state: showState ? memoizedState : null,\n errors: Array.from(errors.entries()),\n warnings: Array.from(warnings.entries()),\n\n // List of owners\n owners,\n\n // Location of component in source code.\n source: _debugSource || null,\n\n rootType,\n rendererPackageName: renderer.rendererPackageName,\n rendererVersion: renderer.version,\n\n plugins,\n };\n }\n\n let mostRecentlyInspectedElement: InspectedElement | null = null;\n let hasElementUpdatedSinceLastInspected: boolean = false;\n let currentlyInspectedPaths: Object = {};\n\n function isMostRecentlyInspectedElement(id: number): boolean {\n return (\n mostRecentlyInspectedElement !== null &&\n mostRecentlyInspectedElement.id === id\n );\n }\n\n function isMostRecentlyInspectedElementCurrent(id: number): boolean {\n return (\n isMostRecentlyInspectedElement(id) && !hasElementUpdatedSinceLastInspected\n );\n }\n\n // Track the intersection of currently inspected paths,\n // so that we can send their data along if the element is re-rendered.\n function mergeInspectedPaths(path: Array) {\n let current = currentlyInspectedPaths;\n path.forEach(key => {\n if (!current[key]) {\n current[key] = {};\n }\n current = current[key];\n });\n }\n\n function createIsPathAllowed(\n key: string | null,\n secondaryCategory: 'hooks' | null,\n ) {\n // This function helps prevent previously-inspected paths from being dehydrated in updates.\n // This is important to avoid a bad user experience where expanded toggles collapse on update.\n return function isPathAllowed(path: Array): boolean {\n switch (secondaryCategory) {\n case 'hooks':\n if (path.length === 1) {\n // Never dehydrate the \"hooks\" object at the top levels.\n return true;\n }\n\n if (\n path[path.length - 2] === 'hookSource' &&\n path[path.length - 1] === 'fileName'\n ) {\n // It's important to preserve the full file name (URL) for hook sources\n // in case the user has enabled the named hooks feature.\n // Otherwise the frontend may end up with a partial URL which it can't load.\n return true;\n }\n\n if (\n path[path.length - 1] === 'subHooks' ||\n path[path.length - 2] === 'subHooks'\n ) {\n // Dehydrating the 'subHooks' property makes the HooksTree UI a lot more complicated,\n // so it's easiest for now if we just don't break on this boundary.\n // We can always dehydrate a level deeper (in the value object).\n return true;\n }\n break;\n default:\n break;\n }\n\n let current =\n key === null ? currentlyInspectedPaths : currentlyInspectedPaths[key];\n if (!current) {\n return false;\n }\n for (let i = 0; i < path.length; i++) {\n current = current[path[i]];\n if (!current) {\n return false;\n }\n }\n return true;\n };\n }\n\n function updateSelectedElement(inspectedElement: InspectedElement): void {\n const {hooks, id, props} = inspectedElement;\n\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n console.warn(`Could not find Fiber with id \"${id}\"`);\n return;\n }\n\n const {elementType, stateNode, tag, type} = fiber;\n\n switch (tag) {\n case ClassComponent:\n case IncompleteClassComponent:\n case IndeterminateComponent:\n global.$r = stateNode;\n break;\n case FunctionComponent:\n global.$r = {\n hooks,\n props,\n type,\n };\n break;\n case ForwardRef:\n global.$r = {\n hooks,\n props,\n type: type.render,\n };\n break;\n case MemoComponent:\n case SimpleMemoComponent:\n global.$r = {\n hooks,\n props,\n type:\n elementType != null && elementType.type != null\n ? elementType.type\n : type,\n };\n break;\n default:\n global.$r = null;\n break;\n }\n }\n\n function storeAsGlobal(\n id: number,\n path: Array,\n count: number,\n ): void {\n if (isMostRecentlyInspectedElement(id)) {\n const value = getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n );\n const key = `$reactTemp${count}`;\n\n window[key] = value;\n\n console.log(key);\n console.log(value);\n }\n }\n\n function getSerializedElementValueByPath(\n id: number,\n path: Array,\n ): ?string {\n if (isMostRecentlyInspectedElement(id)) {\n const valueToCopy = getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n );\n\n return serializeToString(valueToCopy);\n }\n }\n\n function inspectElement(\n requestID: number,\n id: number,\n path: Array | null,\n forceFullData: boolean,\n ): InspectedElementPayload {\n if (path !== null) {\n mergeInspectedPaths(path);\n }\n\n if (isMostRecentlyInspectedElement(id) && !forceFullData) {\n if (!hasElementUpdatedSinceLastInspected) {\n if (path !== null) {\n let secondaryCategory = null;\n if (path[0] === 'hooks') {\n secondaryCategory = 'hooks';\n }\n\n // If this element has not been updated since it was last inspected,\n // we can just return the subset of data in the newly-inspected path.\n return {\n id,\n responseID: requestID,\n type: 'hydrated-path',\n path,\n value: cleanForBridge(\n getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n ),\n createIsPathAllowed(null, secondaryCategory),\n path,\n ),\n };\n } else {\n // If this element has not been updated since it was last inspected, we don't need to return it.\n // Instead we can just return the ID to indicate that it has not changed.\n return {\n id,\n responseID: requestID,\n type: 'no-change',\n };\n }\n }\n } else {\n currentlyInspectedPaths = {};\n }\n\n hasElementUpdatedSinceLastInspected = false;\n\n try {\n mostRecentlyInspectedElement = inspectElementRaw(id);\n } catch (error) {\n // the error name is synced with ReactDebugHooks\n if (error.name === 'ReactDebugToolsRenderError') {\n let message = 'Error rendering inspected element.';\n let stack;\n // Log error & cause for user to debug\n console.error(message + '\\n\\n', error);\n if (error.cause != null) {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n const componentName =\n fiber != null ? getDisplayNameForFiber(fiber) : null;\n console.error(\n 'React DevTools encountered an error while trying to inspect hooks. ' +\n 'This is most likely caused by an error in current inspected component' +\n (componentName != null ? `: \"${componentName}\".` : '.') +\n '\\nThe error thrown in the component is: \\n\\n',\n error.cause,\n );\n if (error.cause instanceof Error) {\n message = error.cause.message || message;\n stack = error.cause.stack;\n }\n }\n\n return {\n type: 'error',\n errorType: 'user',\n id,\n responseID: requestID,\n message,\n stack,\n };\n }\n\n // the error name is synced with ReactDebugHooks\n if (error.name === 'ReactDebugToolsUnsupportedHookError') {\n return {\n type: 'error',\n errorType: 'unknown-hook',\n id,\n responseID: requestID,\n message:\n 'Unsupported hook in the react-debug-tools package: ' +\n error.message,\n };\n }\n\n // Log Uncaught Error\n console.error('Error inspecting element.\\n\\n', error);\n\n return {\n type: 'error',\n errorType: 'uncaught',\n id,\n responseID: requestID,\n message: error.message,\n stack: error.stack,\n };\n }\n\n if (mostRecentlyInspectedElement === null) {\n return {\n id,\n responseID: requestID,\n type: 'not-found',\n };\n }\n\n // Any time an inspected element has an update,\n // we should update the selected $r value as wel.\n // Do this before dehydration (cleanForBridge).\n updateSelectedElement(mostRecentlyInspectedElement);\n\n // Clone before cleaning so that we preserve the full data.\n // This will enable us to send patches without re-inspecting if hydrated paths are requested.\n // (Reducing how often we shallow-render is a better DX for function components that use hooks.)\n const cleanedInspectedElement = {...mostRecentlyInspectedElement};\n // $FlowFixMe[prop-missing] found when upgrading Flow\n cleanedInspectedElement.context = cleanForBridge(\n cleanedInspectedElement.context,\n createIsPathAllowed('context', null),\n );\n // $FlowFixMe[prop-missing] found when upgrading Flow\n cleanedInspectedElement.hooks = cleanForBridge(\n cleanedInspectedElement.hooks,\n createIsPathAllowed('hooks', 'hooks'),\n );\n // $FlowFixMe[prop-missing] found when upgrading Flow\n cleanedInspectedElement.props = cleanForBridge(\n cleanedInspectedElement.props,\n createIsPathAllowed('props', null),\n );\n // $FlowFixMe[prop-missing] found when upgrading Flow\n cleanedInspectedElement.state = cleanForBridge(\n cleanedInspectedElement.state,\n createIsPathAllowed('state', null),\n );\n\n return {\n id,\n responseID: requestID,\n type: 'full-data',\n // $FlowFixMe[prop-missing] found when upgrading Flow\n value: cleanedInspectedElement,\n };\n }\n\n function logElementToConsole(id: number) {\n const result = isMostRecentlyInspectedElementCurrent(id)\n ? mostRecentlyInspectedElement\n : inspectElementRaw(id);\n if (result === null) {\n console.warn(`Could not find Fiber with id \"${id}\"`);\n return;\n }\n\n const supportsGroup = typeof console.groupCollapsed === 'function';\n if (supportsGroup) {\n console.groupCollapsed(\n `[Click to expand] %c<${result.displayName || 'Component'} />`,\n // --dom-tag-name-color is the CSS variable Chrome styles HTML elements with in the console.\n 'color: var(--dom-tag-name-color); font-weight: normal;',\n );\n }\n if (result.props !== null) {\n console.log('Props:', result.props);\n }\n if (result.state !== null) {\n console.log('State:', result.state);\n }\n if (result.hooks !== null) {\n console.log('Hooks:', result.hooks);\n }\n const nativeNodes = findNativeNodesForFiberID(id);\n if (nativeNodes !== null) {\n console.log('Nodes:', nativeNodes);\n }\n if (result.source !== null) {\n console.log('Location:', result.source);\n }\n if (window.chrome || /firefox/i.test(navigator.userAgent)) {\n console.log(\n 'Right-click any value to save it as a global variable for further inspection.',\n );\n }\n if (supportsGroup) {\n console.groupEnd();\n }\n }\n\n function deletePath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n path: Array,\n ): void {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber !== null) {\n const instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n path = path.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (path.length === 0) {\n // Simple context value (noop)\n } else {\n deletePathInObject(instance.context, path);\n }\n instance.forceUpdate();\n break;\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n break;\n case 'hooks':\n if (typeof overrideHookStateDeletePath === 'function') {\n overrideHookStateDeletePath(fiber, ((hookID: any): number), path);\n }\n break;\n case 'props':\n if (instance === null) {\n if (typeof overridePropsDeletePath === 'function') {\n overridePropsDeletePath(fiber, path);\n }\n } else {\n fiber.pendingProps = copyWithDelete(instance.props, path);\n instance.forceUpdate();\n }\n break;\n case 'state':\n deletePathInObject(instance.state, path);\n instance.forceUpdate();\n break;\n }\n }\n }\n\n function renamePath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n oldPath: Array,\n newPath: Array,\n ): void {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber !== null) {\n const instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n oldPath = oldPath.slice(1);\n newPath = newPath.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (oldPath.length === 0) {\n // Simple context value (noop)\n } else {\n renamePathInObject(instance.context, oldPath, newPath);\n }\n instance.forceUpdate();\n break;\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n break;\n case 'hooks':\n if (typeof overrideHookStateRenamePath === 'function') {\n overrideHookStateRenamePath(\n fiber,\n ((hookID: any): number),\n oldPath,\n newPath,\n );\n }\n break;\n case 'props':\n if (instance === null) {\n if (typeof overridePropsRenamePath === 'function') {\n overridePropsRenamePath(fiber, oldPath, newPath);\n }\n } else {\n fiber.pendingProps = copyWithRename(\n instance.props,\n oldPath,\n newPath,\n );\n instance.forceUpdate();\n }\n break;\n case 'state':\n renamePathInObject(instance.state, oldPath, newPath);\n instance.forceUpdate();\n break;\n }\n }\n }\n\n function overrideValueAtPath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n path: Array,\n value: any,\n ): void {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber !== null) {\n const instance = fiber.stateNode;\n\n switch (type) {\n case 'context':\n // To simplify hydration and display of primitive context values (e.g. number, string)\n // the inspectElement() method wraps context in a {value: ...} object.\n // We need to remove the first part of the path (the \"value\") before continuing.\n path = path.slice(1);\n\n switch (fiber.tag) {\n case ClassComponent:\n if (path.length === 0) {\n // Simple context value\n instance.context = value;\n } else {\n setInObject(instance.context, path, value);\n }\n instance.forceUpdate();\n break;\n case FunctionComponent:\n // Function components using legacy context are not editable\n // because there's no instance on which to create a cloned, mutated context.\n break;\n }\n break;\n case 'hooks':\n if (typeof overrideHookState === 'function') {\n overrideHookState(fiber, ((hookID: any): number), path, value);\n }\n break;\n case 'props':\n switch (fiber.tag) {\n case ClassComponent:\n fiber.pendingProps = copyWithSet(instance.props, path, value);\n instance.forceUpdate();\n break;\n default:\n if (typeof overrideProps === 'function') {\n overrideProps(fiber, path, value);\n }\n break;\n }\n break;\n case 'state':\n switch (fiber.tag) {\n case ClassComponent:\n setInObject(instance.state, path, value);\n instance.forceUpdate();\n break;\n }\n break;\n }\n }\n }\n\n type CommitProfilingData = {\n changeDescriptions: Map | null,\n commitTime: number,\n durations: Array,\n effectDuration: number | null,\n maxActualDuration: number,\n passiveEffectDuration: number | null,\n priorityLevel: string | null,\n updaters: Array | null,\n };\n\n type CommitProfilingMetadataMap = Map>;\n type DisplayNamesByRootID = Map;\n\n let currentCommitProfilingMetadata: CommitProfilingData | null = null;\n let displayNamesByRootID: DisplayNamesByRootID | null = null;\n let idToContextsMap: Map | null = null;\n let initialTreeBaseDurationsMap: Map | null = null;\n let initialIDToRootMap: Map | null = null;\n let isProfiling: boolean = false;\n let profilingStartTime: number = 0;\n let recordChangeDescriptions: boolean = false;\n let rootToCommitProfilingMetadataMap: CommitProfilingMetadataMap | null =\n null;\n\n function getProfilingData(): ProfilingDataBackend {\n const dataForRoots: Array = [];\n\n if (rootToCommitProfilingMetadataMap === null) {\n throw Error(\n 'getProfilingData() called before any profiling data was recorded',\n );\n }\n\n rootToCommitProfilingMetadataMap.forEach(\n (commitProfilingMetadata, rootID) => {\n const commitData: Array = [];\n const initialTreeBaseDurations: Array<[number, number]> = [];\n\n const displayName =\n (displayNamesByRootID !== null && displayNamesByRootID.get(rootID)) ||\n 'Unknown';\n\n if (initialTreeBaseDurationsMap != null) {\n initialTreeBaseDurationsMap.forEach((treeBaseDuration, id) => {\n if (\n initialIDToRootMap != null &&\n initialIDToRootMap.get(id) === rootID\n ) {\n // We don't need to convert milliseconds to microseconds in this case,\n // because the profiling summary is JSON serialized.\n initialTreeBaseDurations.push([id, treeBaseDuration]);\n }\n });\n }\n\n commitProfilingMetadata.forEach((commitProfilingData, commitIndex) => {\n const {\n changeDescriptions,\n durations,\n effectDuration,\n maxActualDuration,\n passiveEffectDuration,\n priorityLevel,\n commitTime,\n updaters,\n } = commitProfilingData;\n\n const fiberActualDurations: Array<[number, number]> = [];\n const fiberSelfDurations: Array<[number, number]> = [];\n for (let i = 0; i < durations.length; i += 3) {\n const fiberID = durations[i];\n fiberActualDurations.push([fiberID, durations[i + 1]]);\n fiberSelfDurations.push([fiberID, durations[i + 2]]);\n }\n\n commitData.push({\n changeDescriptions:\n changeDescriptions !== null\n ? Array.from(changeDescriptions.entries())\n : null,\n duration: maxActualDuration,\n effectDuration,\n fiberActualDurations,\n fiberSelfDurations,\n passiveEffectDuration,\n priorityLevel,\n timestamp: commitTime,\n updaters,\n });\n });\n\n dataForRoots.push({\n commitData,\n displayName,\n initialTreeBaseDurations,\n rootID,\n });\n },\n );\n\n let timelineData = null;\n if (typeof getTimelineData === 'function') {\n const currentTimelineData = getTimelineData();\n if (currentTimelineData) {\n const {\n batchUIDToMeasuresMap,\n internalModuleSourceToRanges,\n laneToLabelMap,\n laneToReactMeasureMap,\n ...rest\n } = currentTimelineData;\n\n timelineData = {\n ...rest,\n\n // Most of the data is safe to parse as-is,\n // but we need to convert the nested Arrays back to Maps.\n // Most of the data is safe to serialize as-is,\n // but we need to convert the Maps to nested Arrays.\n batchUIDToMeasuresKeyValueArray: Array.from(\n batchUIDToMeasuresMap.entries(),\n ),\n internalModuleSourceToRanges: Array.from(\n internalModuleSourceToRanges.entries(),\n ),\n laneToLabelKeyValueArray: Array.from(laneToLabelMap.entries()),\n laneToReactMeasureKeyValueArray: Array.from(\n laneToReactMeasureMap.entries(),\n ),\n };\n }\n }\n\n return {\n dataForRoots,\n rendererID,\n timelineData,\n };\n }\n\n function startProfiling(shouldRecordChangeDescriptions: boolean) {\n if (isProfiling) {\n return;\n }\n\n recordChangeDescriptions = shouldRecordChangeDescriptions;\n\n // Capture initial values as of the time profiling starts.\n // It's important we snapshot both the durations and the id-to-root map,\n // since either of these may change during the profiling session\n // (e.g. when a fiber is re-rendered or when a fiber gets removed).\n displayNamesByRootID = new Map();\n initialTreeBaseDurationsMap = new Map(idToTreeBaseDurationMap);\n initialIDToRootMap = new Map(idToRootMap);\n idToContextsMap = new Map();\n\n hook.getFiberRoots(rendererID).forEach(root => {\n const rootID = getFiberIDThrows(root.current);\n ((displayNamesByRootID: any): DisplayNamesByRootID).set(\n rootID,\n getDisplayNameForRoot(root.current),\n );\n\n if (shouldRecordChangeDescriptions) {\n // Record all contexts at the time profiling is started.\n // Fibers only store the current context value,\n // so we need to track them separately in order to determine changed keys.\n crawlToInitializeContextsMap(root.current);\n }\n });\n\n isProfiling = true;\n profilingStartTime = getCurrentTime();\n rootToCommitProfilingMetadataMap = new Map();\n\n if (toggleProfilingStatus !== null) {\n toggleProfilingStatus(true);\n }\n }\n\n function stopProfiling() {\n isProfiling = false;\n recordChangeDescriptions = false;\n\n if (toggleProfilingStatus !== null) {\n toggleProfilingStatus(false);\n }\n }\n\n // Automatically start profiling so that we don't miss timing info from initial \"mount\".\n if (\n sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true'\n ) {\n startProfiling(\n sessionStorageGetItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY) ===\n 'true',\n );\n }\n\n // React will switch between these implementations depending on whether\n // we have any manually suspended/errored-out Fibers or not.\n function shouldErrorFiberAlwaysNull() {\n return null;\n }\n\n // Map of id and its force error status: true (error), false (toggled off),\n // null (do nothing)\n const forceErrorForFiberIDs = new Map();\n\n function shouldErrorFiberAccordingToMap(fiber: any) {\n if (typeof setErrorHandler !== 'function') {\n throw new Error(\n 'Expected overrideError() to not get called for earlier React versions.',\n );\n }\n\n const id = getFiberIDUnsafe(fiber);\n if (id === null) {\n return null;\n }\n\n let status = null;\n if (forceErrorForFiberIDs.has(id)) {\n status = forceErrorForFiberIDs.get(id);\n if (status === false) {\n // TRICKY overrideError adds entries to this Map,\n // so ideally it would be the method that clears them too,\n // but that would break the functionality of the feature,\n // since DevTools needs to tell React to act differently than it normally would\n // (don't just re-render the failed boundary, but reset its errored state too).\n // So we can only clear it after telling React to reset the state.\n // Technically this is premature and we should schedule it for later,\n // since the render could always fail without committing the updated error boundary,\n // but since this is a DEV-only feature, the simplicity is worth the trade off.\n forceErrorForFiberIDs.delete(id);\n\n if (forceErrorForFiberIDs.size === 0) {\n // Last override is gone. Switch React back to fast path.\n setErrorHandler(shouldErrorFiberAlwaysNull);\n }\n }\n }\n return status;\n }\n\n function overrideError(id: number, forceError: boolean) {\n if (\n typeof setErrorHandler !== 'function' ||\n typeof scheduleUpdate !== 'function'\n ) {\n throw new Error(\n 'Expected overrideError() to not get called for earlier React versions.',\n );\n }\n\n forceErrorForFiberIDs.set(id, forceError);\n\n if (forceErrorForFiberIDs.size === 1) {\n // First override is added. Switch React to slower path.\n setErrorHandler(shouldErrorFiberAccordingToMap);\n }\n\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n scheduleUpdate(fiber);\n }\n }\n\n function shouldSuspendFiberAlwaysFalse() {\n return false;\n }\n\n const forceFallbackForSuspenseIDs = new Set();\n\n function shouldSuspendFiberAccordingToSet(fiber: any) {\n const maybeID = getFiberIDUnsafe(((fiber: any): Fiber));\n return maybeID !== null && forceFallbackForSuspenseIDs.has(maybeID);\n }\n\n function overrideSuspense(id: number, forceFallback: boolean) {\n if (\n typeof setSuspenseHandler !== 'function' ||\n typeof scheduleUpdate !== 'function'\n ) {\n throw new Error(\n 'Expected overrideSuspense() to not get called for earlier React versions.',\n );\n }\n if (forceFallback) {\n forceFallbackForSuspenseIDs.add(id);\n if (forceFallbackForSuspenseIDs.size === 1) {\n // First override is added. Switch React to slower path.\n setSuspenseHandler(shouldSuspendFiberAccordingToSet);\n }\n } else {\n forceFallbackForSuspenseIDs.delete(id);\n if (forceFallbackForSuspenseIDs.size === 0) {\n // Last override is gone. Switch React back to fast path.\n setSuspenseHandler(shouldSuspendFiberAlwaysFalse);\n }\n }\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n scheduleUpdate(fiber);\n }\n }\n\n // Remember if we're trying to restore the selection after reload.\n // In that case, we'll do some extra checks for matching mounts.\n let trackedPath: Array | null = null;\n let trackedPathMatchFiber: Fiber | null = null;\n let trackedPathMatchDepth = -1;\n let mightBeOnTrackedPath = false;\n\n function setTrackedPath(path: Array | null) {\n if (path === null) {\n trackedPathMatchFiber = null;\n trackedPathMatchDepth = -1;\n mightBeOnTrackedPath = false;\n }\n trackedPath = path;\n }\n\n // We call this before traversing a new mount.\n // It remembers whether this Fiber is the next best match for tracked path.\n // The return value signals whether we should keep matching siblings or not.\n function updateTrackedPathStateBeforeMount(fiber: Fiber): boolean {\n if (trackedPath === null || !mightBeOnTrackedPath) {\n // Fast path: there's nothing to track so do nothing and ignore siblings.\n return false;\n }\n const returnFiber = fiber.return;\n const returnAlternate = returnFiber !== null ? returnFiber.alternate : null;\n // By now we know there's some selection to restore, and this is a new Fiber.\n // Is this newly mounted Fiber a direct child of the current best match?\n // (This will also be true for new roots if we haven't matched anything yet.)\n if (\n trackedPathMatchFiber === returnFiber ||\n (trackedPathMatchFiber === returnAlternate && returnAlternate !== null)\n ) {\n // Is this the next Fiber we should select? Let's compare the frames.\n const actualFrame = getPathFrame(fiber);\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n const expectedFrame = trackedPath[trackedPathMatchDepth + 1];\n if (expectedFrame === undefined) {\n throw new Error('Expected to see a frame at the next depth.');\n }\n if (\n actualFrame.index === expectedFrame.index &&\n actualFrame.key === expectedFrame.key &&\n actualFrame.displayName === expectedFrame.displayName\n ) {\n // We have our next match.\n trackedPathMatchFiber = fiber;\n trackedPathMatchDepth++;\n // Are we out of frames to match?\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n if (trackedPathMatchDepth === trackedPath.length - 1) {\n // There's nothing that can possibly match afterwards.\n // Don't check the children.\n mightBeOnTrackedPath = false;\n } else {\n // Check the children, as they might reveal the next match.\n mightBeOnTrackedPath = true;\n }\n // In either case, since we have a match, we don't need\n // to check the siblings. They'll never match.\n return false;\n }\n }\n // This Fiber's parent is on the path, but this Fiber itself isn't.\n // There's no need to check its children--they won't be on the path either.\n mightBeOnTrackedPath = false;\n // However, one of its siblings may be on the path so keep searching.\n return true;\n }\n\n function updateTrackedPathStateAfterMount(\n mightSiblingsBeOnTrackedPath: boolean,\n ) {\n // updateTrackedPathStateBeforeMount() told us whether to match siblings.\n // Now that we're entering siblings, let's use that information.\n mightBeOnTrackedPath = mightSiblingsBeOnTrackedPath;\n }\n\n // Roots don't have a real persistent identity.\n // A root's \"pseudo key\" is \"childDisplayName:indexWithThatName\".\n // For example, \"App:0\" or, in case of similar roots, \"Story:0\", \"Story:1\", etc.\n // We will use this to try to disambiguate roots when restoring selection between reloads.\n const rootPseudoKeys: Map = new Map();\n const rootDisplayNameCounter: Map = new Map();\n\n function setRootPseudoKey(id: number, fiber: Fiber) {\n const name = getDisplayNameForRoot(fiber);\n const counter = rootDisplayNameCounter.get(name) || 0;\n rootDisplayNameCounter.set(name, counter + 1);\n const pseudoKey = `${name}:${counter}`;\n rootPseudoKeys.set(id, pseudoKey);\n }\n\n function removeRootPseudoKey(id: number) {\n const pseudoKey = rootPseudoKeys.get(id);\n if (pseudoKey === undefined) {\n throw new Error('Expected root pseudo key to be known.');\n }\n const name = pseudoKey.slice(0, pseudoKey.lastIndexOf(':'));\n const counter = rootDisplayNameCounter.get(name);\n if (counter === undefined) {\n throw new Error('Expected counter to be known.');\n }\n if (counter > 1) {\n rootDisplayNameCounter.set(name, counter - 1);\n } else {\n rootDisplayNameCounter.delete(name);\n }\n rootPseudoKeys.delete(id);\n }\n\n function getDisplayNameForRoot(fiber: Fiber): string {\n let preferredDisplayName = null;\n let fallbackDisplayName = null;\n let child = fiber.child;\n // Go at most three levels deep into direct children\n // while searching for a child that has a displayName.\n for (let i = 0; i < 3; i++) {\n if (child === null) {\n break;\n }\n const displayName = getDisplayNameForFiber(child);\n if (displayName !== null) {\n // Prefer display names that we get from user-defined components.\n // We want to avoid using e.g. 'Suspense' unless we find nothing else.\n if (typeof child.type === 'function') {\n // There's a few user-defined tags, but we'll prefer the ones\n // that are usually explicitly named (function or class components).\n preferredDisplayName = displayName;\n } else if (fallbackDisplayName === null) {\n fallbackDisplayName = displayName;\n }\n }\n if (preferredDisplayName !== null) {\n break;\n }\n child = child.child;\n }\n return preferredDisplayName || fallbackDisplayName || 'Anonymous';\n }\n\n function getPathFrame(fiber: Fiber): PathFrame {\n const {key} = fiber;\n let displayName = getDisplayNameForFiber(fiber);\n const index = fiber.index;\n switch (fiber.tag) {\n case HostRoot:\n // Roots don't have a real displayName, index, or key.\n // Instead, we'll use the pseudo key (childDisplayName:indexWithThatName).\n const id = getFiberIDThrows(fiber);\n const pseudoKey = rootPseudoKeys.get(id);\n if (pseudoKey === undefined) {\n throw new Error('Expected mounted root to have known pseudo key.');\n }\n displayName = pseudoKey;\n break;\n case HostComponent:\n displayName = fiber.type;\n break;\n default:\n break;\n }\n return {\n displayName,\n key,\n index,\n };\n }\n\n // Produces a serializable representation that does a best effort\n // of identifying a particular Fiber between page reloads.\n // The return path will contain Fibers that are \"invisible\" to the store\n // because their keys and indexes are important to restoring the selection.\n function getPathForElement(id: number): Array | null {\n let fiber: ?Fiber = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n return null;\n }\n const keyPath = [];\n while (fiber !== null) {\n // $FlowFixMe[incompatible-call] found when upgrading Flow\n keyPath.push(getPathFrame(fiber));\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n fiber = fiber.return;\n }\n keyPath.reverse();\n return keyPath;\n }\n\n function getBestMatchForTrackedPath(): PathMatch | null {\n if (trackedPath === null) {\n // Nothing to match.\n return null;\n }\n if (trackedPathMatchFiber === null) {\n // We didn't find anything.\n return null;\n }\n // Find the closest Fiber store is aware of.\n let fiber: null | Fiber = trackedPathMatchFiber;\n while (fiber !== null && shouldFilterFiber(fiber)) {\n fiber = fiber.return;\n }\n if (fiber === null) {\n return null;\n }\n return {\n id: getFiberIDThrows(fiber),\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n isFullMatch: trackedPathMatchDepth === trackedPath.length - 1,\n };\n }\n\n const formatPriorityLevel = (priorityLevel: ?number) => {\n if (priorityLevel == null) {\n return 'Unknown';\n }\n\n switch (priorityLevel) {\n case ImmediatePriority:\n return 'Immediate';\n case UserBlockingPriority:\n return 'User-Blocking';\n case NormalPriority:\n return 'Normal';\n case LowPriority:\n return 'Low';\n case IdlePriority:\n return 'Idle';\n case NoPriority:\n default:\n return 'Unknown';\n }\n };\n\n function setTraceUpdatesEnabled(isEnabled: boolean): void {\n traceUpdatesEnabled = isEnabled;\n }\n\n function hasFiberWithId(id: number): boolean {\n return idToArbitraryFiberMap.has(id);\n }\n\n return {\n cleanup,\n clearErrorsAndWarnings,\n clearErrorsForFiberID,\n clearWarningsForFiberID,\n getSerializedElementValueByPath,\n deletePath,\n findNativeNodesForFiberID,\n flushInitialOperations,\n getBestMatchForTrackedPath,\n getDisplayNameForFiberID,\n getFiberForNative,\n getFiberIDForNative,\n getInstanceAndStyle,\n getOwnersList,\n getPathForElement,\n getProfilingData,\n handleCommitFiberRoot,\n handleCommitFiberUnmount,\n handlePostCommitFiberRoot,\n hasFiberWithId,\n inspectElement,\n logElementToConsole,\n patchConsoleForStrictMode,\n prepareViewAttributeSource,\n prepareViewElementSource,\n overrideError,\n overrideSuspense,\n overrideValueAtPath,\n renamePath,\n renderer,\n setTraceUpdatesEnabled,\n setTrackedPath,\n startProfiling,\n stopProfiling,\n storeAsGlobal,\n unpatchConsoleForStrictMode,\n updateComponentFilters,\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {\n CurrentDispatcherRef,\n ReactRenderer,\n WorkTagMap,\n ConsolePatchSettings,\n} from './types';\nimport {format, formatWithStyles} from './utils';\n\nimport {getInternalReactConstants} from './renderer';\nimport {getStackByFiberInDevAndProd} from './DevToolsFiberComponentStack';\nimport {consoleManagedByDevToolsDuringStrictMode} from 'react-devtools-feature-flags';\nimport {castBool, castBrowserTheme} from '../utils';\n\nconst OVERRIDE_CONSOLE_METHODS = ['error', 'trace', 'warn'];\nconst DIMMED_NODE_CONSOLE_COLOR = '\\x1b[2m%s\\x1b[0m';\n\n// React's custom built component stack strings match \"\\s{4}in\"\n// Chrome's prefix matches \"\\s{4}at\"\nconst PREFIX_REGEX = /\\s{4}(in|at)\\s{1}/;\n// Firefox and Safari have no prefix (\"\")\n// but we can fallback to looking for location info (e.g. \"foo.js:12:345\")\nconst ROW_COLUMN_NUMBER_REGEX = /:\\d+:\\d+(\\n|$)/;\n\nexport function isStringComponentStack(text: string): boolean {\n return PREFIX_REGEX.test(text) || ROW_COLUMN_NUMBER_REGEX.test(text);\n}\n\nconst STYLE_DIRECTIVE_REGEX = /^%c/;\n\n// This function tells whether or not the arguments for a console\n// method has been overridden by the patchForStrictMode function.\n// If it has we'll need to do some special formatting of the arguments\n// so the console color stays consistent\nfunction isStrictModeOverride(args: Array, method: string): boolean {\n return (\n args.length >= 2 &&\n STYLE_DIRECTIVE_REGEX.test(args[0]) &&\n args[1] === `color: ${getConsoleColor(method) || ''}`\n );\n}\n\nfunction getConsoleColor(method: string): ?string {\n switch (method) {\n case 'warn':\n return consoleSettingsRef.browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_WARNING_COLOR\n : process.env.DARK_MODE_DIMMED_WARNING_COLOR;\n case 'error':\n return consoleSettingsRef.browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_ERROR_COLOR\n : process.env.DARK_MODE_DIMMED_ERROR_COLOR;\n case 'log':\n default:\n return consoleSettingsRef.browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_LOG_COLOR\n : process.env.DARK_MODE_DIMMED_LOG_COLOR;\n }\n}\ntype OnErrorOrWarning = (\n fiber: Fiber,\n type: 'error' | 'warn',\n args: Array,\n) => void;\n\nconst injectedRenderers: Map<\n ReactRenderer,\n {\n currentDispatcherRef: CurrentDispatcherRef,\n getCurrentFiber: () => Fiber | null,\n onErrorOrWarning: ?OnErrorOrWarning,\n workTagMap: WorkTagMap,\n },\n> = new Map();\n\nlet targetConsole: Object = console;\nlet targetConsoleMethods: {[string]: $FlowFixMe} = {};\nfor (const method in console) {\n targetConsoleMethods[method] = console[method];\n}\n\nlet unpatchFn: null | (() => void) = null;\n\nlet isNode = false;\ntry {\n isNode = this === global;\n} catch (error) {}\n\n// Enables e.g. Jest tests to inject a mock console object.\nexport function dangerous_setTargetConsoleForTesting(\n targetConsoleForTesting: Object,\n): void {\n targetConsole = targetConsoleForTesting;\n\n targetConsoleMethods = ({}: {[string]: $FlowFixMe});\n for (const method in targetConsole) {\n targetConsoleMethods[method] = console[method];\n }\n}\n\n// v16 renderers should use this method to inject internals necessary to generate a component stack.\n// These internals will be used if the console is patched.\n// Injecting them separately allows the console to easily be patched or un-patched later (at runtime).\nexport function registerRenderer(\n renderer: ReactRenderer,\n onErrorOrWarning?: OnErrorOrWarning,\n): void {\n const {\n currentDispatcherRef,\n getCurrentFiber,\n findFiberByHostInstance,\n version,\n } = renderer;\n\n // Ignore React v15 and older because they don't expose a component stack anyway.\n if (typeof findFiberByHostInstance !== 'function') {\n return;\n }\n\n // currentDispatcherRef gets injected for v16.8+ to support hooks inspection.\n // getCurrentFiber gets injected for v16.9+.\n if (currentDispatcherRef != null && typeof getCurrentFiber === 'function') {\n const {ReactTypeOfWork} = getInternalReactConstants(version);\n\n injectedRenderers.set(renderer, {\n currentDispatcherRef,\n getCurrentFiber,\n workTagMap: ReactTypeOfWork,\n onErrorOrWarning,\n });\n }\n}\n\nconst consoleSettingsRef: ConsolePatchSettings = {\n appendComponentStack: false,\n breakOnConsoleErrors: false,\n showInlineWarningsAndErrors: false,\n hideConsoleLogsInStrictMode: false,\n browserTheme: 'dark',\n};\n\n// Patches console methods to append component stack for the current fiber.\n// Call unpatch() to remove the injected behavior.\nexport function patch({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n}: ConsolePatchSettings): void {\n // Settings may change after we've patched the console.\n // Using a shared ref allows the patch function to read the latest values.\n consoleSettingsRef.appendComponentStack = appendComponentStack;\n consoleSettingsRef.breakOnConsoleErrors = breakOnConsoleErrors;\n consoleSettingsRef.showInlineWarningsAndErrors = showInlineWarningsAndErrors;\n consoleSettingsRef.hideConsoleLogsInStrictMode = hideConsoleLogsInStrictMode;\n consoleSettingsRef.browserTheme = browserTheme;\n\n if (\n appendComponentStack ||\n breakOnConsoleErrors ||\n showInlineWarningsAndErrors\n ) {\n if (unpatchFn !== null) {\n // Don't patch twice.\n return;\n }\n\n const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n unpatchFn = () => {\n for (const method in originalConsoleMethods) {\n try {\n targetConsole[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n };\n\n OVERRIDE_CONSOLE_METHODS.forEach(method => {\n try {\n const originalMethod = (originalConsoleMethods[method] = targetConsole[\n method\n ].__REACT_DEVTOOLS_ORIGINAL_METHOD__\n ? targetConsole[method].__REACT_DEVTOOLS_ORIGINAL_METHOD__\n : targetConsole[method]);\n\n // $FlowFixMe[missing-local-annot]\n const overrideMethod = (...args) => {\n let shouldAppendWarningStack = false;\n if (method !== 'log') {\n if (consoleSettingsRef.appendComponentStack) {\n const lastArg = args.length > 0 ? args[args.length - 1] : null;\n const alreadyHasComponentStack =\n typeof lastArg === 'string' && isStringComponentStack(lastArg);\n\n // If we are ever called with a string that already has a component stack,\n // e.g. a React error/warning, don't append a second stack.\n shouldAppendWarningStack = !alreadyHasComponentStack;\n }\n }\n\n const shouldShowInlineWarningsAndErrors =\n consoleSettingsRef.showInlineWarningsAndErrors &&\n (method === 'error' || method === 'warn');\n\n // Search for the first renderer that has a current Fiber.\n // We don't handle the edge case of stacks for more than one (e.g. interleaved renderers?)\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const {\n currentDispatcherRef,\n getCurrentFiber,\n onErrorOrWarning,\n workTagMap,\n } of injectedRenderers.values()) {\n const current: ?Fiber = getCurrentFiber();\n if (current != null) {\n try {\n if (shouldShowInlineWarningsAndErrors) {\n // patch() is called by two places: (1) the hook and (2) the renderer backend.\n // The backend is what implements a message queue, so it's the only one that injects onErrorOrWarning.\n if (typeof onErrorOrWarning === 'function') {\n onErrorOrWarning(\n current,\n ((method: any): 'error' | 'warn'),\n // Copy args before we mutate them (e.g. adding the component stack)\n args.slice(),\n );\n }\n }\n\n if (shouldAppendWarningStack) {\n const componentStack = getStackByFiberInDevAndProd(\n workTagMap,\n current,\n currentDispatcherRef,\n );\n if (componentStack !== '') {\n if (isStrictModeOverride(args, method)) {\n args[0] = `${args[0]} %s`;\n args.push(componentStack);\n } else {\n args.push(componentStack);\n }\n }\n }\n } catch (error) {\n // Don't let a DevTools or React internal error interfere with logging.\n setTimeout(() => {\n throw error;\n }, 0);\n } finally {\n break;\n }\n }\n }\n\n if (consoleSettingsRef.breakOnConsoleErrors) {\n // --- Welcome to debugging with React DevTools ---\n // This debugger statement means that you've enabled the \"break on warnings\" feature.\n // Use the browser's Call Stack panel to step out of this override function-\n // to where the original warning or error was logged.\n // eslint-disable-next-line no-debugger\n debugger;\n }\n\n originalMethod(...args);\n };\n\n overrideMethod.__REACT_DEVTOOLS_ORIGINAL_METHOD__ = originalMethod;\n originalMethod.__REACT_DEVTOOLS_OVERRIDE_METHOD__ = overrideMethod;\n\n targetConsole[method] = overrideMethod;\n } catch (error) {}\n });\n } else {\n unpatch();\n }\n}\n\n// Removed component stack patch from console methods.\nexport function unpatch(): void {\n if (unpatchFn !== null) {\n unpatchFn();\n unpatchFn = null;\n }\n}\n\nlet unpatchForStrictModeFn: null | (() => void) = null;\n\n// NOTE: KEEP IN SYNC with src/hook.js:patchConsoleForInitialRenderInStrictMode\nexport function patchForStrictMode() {\n if (consoleManagedByDevToolsDuringStrictMode) {\n const overrideConsoleMethods = [\n 'error',\n 'group',\n 'groupCollapsed',\n 'info',\n 'log',\n 'trace',\n 'warn',\n ];\n\n if (unpatchForStrictModeFn !== null) {\n // Don't patch twice.\n return;\n }\n\n const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n unpatchForStrictModeFn = () => {\n for (const method in originalConsoleMethods) {\n try {\n targetConsole[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n };\n\n overrideConsoleMethods.forEach(method => {\n try {\n const originalMethod = (originalConsoleMethods[method] = targetConsole[\n method\n ].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n ? targetConsole[method].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n : targetConsole[method]);\n\n // $FlowFixMe[missing-local-annot]\n const overrideMethod = (...args) => {\n if (!consoleSettingsRef.hideConsoleLogsInStrictMode) {\n // Dim the text color of the double logs if we're not\n // hiding them.\n if (isNode) {\n originalMethod(DIMMED_NODE_CONSOLE_COLOR, format(...args));\n } else {\n const color = getConsoleColor(method);\n if (color) {\n originalMethod(...formatWithStyles(args, `color: ${color}`));\n } else {\n throw Error('Console color is not defined');\n }\n }\n }\n };\n\n overrideMethod.__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__ =\n originalMethod;\n originalMethod.__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__ =\n overrideMethod;\n\n targetConsole[method] = overrideMethod;\n } catch (error) {}\n });\n }\n}\n\n// NOTE: KEEP IN SYNC with src/hook.js:unpatchConsoleForInitialRenderInStrictMode\nexport function unpatchForStrictMode(): void {\n if (consoleManagedByDevToolsDuringStrictMode) {\n if (unpatchForStrictModeFn !== null) {\n unpatchForStrictModeFn();\n unpatchForStrictModeFn = null;\n }\n }\n}\n\nexport function patchConsoleUsingWindowValues() {\n const appendComponentStack =\n castBool(window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__) ?? true;\n const breakOnConsoleErrors =\n castBool(window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__) ?? false;\n const showInlineWarningsAndErrors =\n castBool(window.__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__) ?? true;\n const hideConsoleLogsInStrictMode =\n castBool(window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__) ??\n false;\n const browserTheme =\n castBrowserTheme(window.__REACT_DEVTOOLS_BROWSER_THEME__) ?? 'dark';\n\n patch({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n });\n}\n\n// After receiving cached console patch settings from React Native, we set them on window.\n// When the console is initially patched (in renderer.js and hook.js), these values are read.\n// The browser extension (etc.) sets these values on window, but through another method.\nexport function writeConsolePatchSettingsToWindow(\n settings: ConsolePatchSettings,\n): void {\n window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__ =\n settings.appendComponentStack;\n window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__ =\n settings.breakOnConsoleErrors;\n window.__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__ =\n settings.showInlineWarningsAndErrors;\n window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__ =\n settings.hideConsoleLogsInStrictMode;\n window.__REACT_DEVTOOLS_BROWSER_THEME__ = settings.browserTheme;\n}\n\nexport function installConsoleFunctionsToWindow(): void {\n window.__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__ = {\n patchConsoleUsingWindowValues,\n registerRendererWithConsole: registerRenderer,\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport EventEmitter from './events';\n\nimport type {ComponentFilter, Wall} from './types';\nimport type {\n InspectedElementPayload,\n OwnersList,\n ProfilingDataBackend,\n RendererID,\n ConsolePatchSettings,\n} from 'react-devtools-shared/src/backend/types';\nimport type {StyleAndLayout as StyleAndLayoutPayload} from 'react-devtools-shared/src/backend/NativeStyleEditor/types';\n\nconst BATCH_DURATION = 100;\n\n// This message specifies the version of the DevTools protocol currently supported by the backend,\n// as well as the earliest NPM version (e.g. \"4.13.0\") that protocol is supported by on the frontend.\n// This enables an older frontend to display an upgrade message to users for a newer, unsupported backend.\nexport type BridgeProtocol = {\n // Version supported by the current frontend/backend.\n version: number,\n\n // NPM version range that also supports this version.\n // Note that 'maxNpmVersion' is only set when the version is bumped.\n minNpmVersion: string,\n maxNpmVersion: string | null,\n};\n\n// Bump protocol version whenever a backwards breaking change is made\n// in the messages sent between BackendBridge and FrontendBridge.\n// This mapping is embedded in both frontend and backend builds.\n//\n// The backend protocol will always be the latest entry in the BRIDGE_PROTOCOL array.\n//\n// When an older frontend connects to a newer backend,\n// the backend can send the minNpmVersion and the frontend can display an NPM upgrade prompt.\n//\n// When a newer frontend connects with an older protocol version,\n// the frontend can use the embedded minNpmVersion/maxNpmVersion values to display a downgrade prompt.\nexport const BRIDGE_PROTOCOL: Array = [\n // This version technically never existed,\n // but a backwards breaking change was added in 4.11,\n // so the safest guess to downgrade the frontend would be to version 4.10.\n {\n version: 0,\n minNpmVersion: '\"<4.11.0\"',\n maxNpmVersion: '\"<4.11.0\"',\n },\n // Versions 4.11.x – 4.12.x contained the backwards breaking change,\n // but we didn't add the \"fix\" of checking the protocol version until 4.13,\n // so we don't recommend downgrading to 4.11 or 4.12.\n {\n version: 1,\n minNpmVersion: '4.13.0',\n maxNpmVersion: '4.21.0',\n },\n // Version 2 adds a StrictMode-enabled and supports-StrictMode bits to add-root operation.\n {\n version: 2,\n minNpmVersion: '4.22.0',\n maxNpmVersion: null,\n },\n];\n\nexport const currentBridgeProtocol: BridgeProtocol =\n BRIDGE_PROTOCOL[BRIDGE_PROTOCOL.length - 1];\n\ntype ElementAndRendererID = {id: number, rendererID: RendererID};\n\ntype Message = {\n event: string,\n payload: any,\n};\n\ntype HighlightElementInDOM = {\n ...ElementAndRendererID,\n displayName: string | null,\n hideAfterTimeout: boolean,\n openNativeElementsPanel: boolean,\n scrollIntoView: boolean,\n};\n\ntype OverrideValue = {\n ...ElementAndRendererID,\n path: Array,\n wasForwarded?: boolean,\n value: any,\n};\n\ntype OverrideHookState = {\n ...OverrideValue,\n hookID: number,\n};\n\ntype PathType = 'props' | 'hooks' | 'state' | 'context';\n\ntype DeletePath = {\n ...ElementAndRendererID,\n type: PathType,\n hookID?: ?number,\n path: Array,\n};\n\ntype RenamePath = {\n ...ElementAndRendererID,\n type: PathType,\n hookID?: ?number,\n oldPath: Array,\n newPath: Array,\n};\n\ntype OverrideValueAtPath = {\n ...ElementAndRendererID,\n type: PathType,\n hookID?: ?number,\n path: Array,\n value: any,\n};\n\ntype OverrideError = {\n ...ElementAndRendererID,\n forceError: boolean,\n};\n\ntype OverrideSuspense = {\n ...ElementAndRendererID,\n forceFallback: boolean,\n};\n\ntype CopyElementPathParams = {\n ...ElementAndRendererID,\n path: Array,\n};\n\ntype ViewAttributeSourceParams = {\n ...ElementAndRendererID,\n path: Array,\n};\n\ntype InspectElementParams = {\n ...ElementAndRendererID,\n forceFullData: boolean,\n path: Array | null,\n requestID: number,\n};\n\ntype StoreAsGlobalParams = {\n ...ElementAndRendererID,\n count: number,\n path: Array,\n};\n\ntype NativeStyleEditor_RenameAttributeParams = {\n ...ElementAndRendererID,\n oldName: string,\n newName: string,\n value: string,\n};\n\ntype NativeStyleEditor_SetValueParams = {\n ...ElementAndRendererID,\n name: string,\n value: string,\n};\n\ntype SavedPreferencesParams = {\n appendComponentStack: boolean,\n breakOnConsoleErrors: boolean,\n componentFilters: Array,\n showInlineWarningsAndErrors: boolean,\n hideConsoleLogsInStrictMode: boolean,\n};\n\nexport type BackendEvents = {\n backendVersion: [string],\n bridgeProtocol: [BridgeProtocol],\n extensionBackendInitialized: [],\n fastRefreshScheduled: [],\n getSavedPreferences: [],\n inspectedElement: [InspectedElementPayload],\n isBackendStorageAPISupported: [boolean],\n isSynchronousXHRSupported: [boolean],\n operations: [Array],\n ownersList: [OwnersList],\n overrideComponentFilters: [Array],\n profilingData: [ProfilingDataBackend],\n profilingStatus: [boolean],\n reloadAppForProfiling: [],\n saveToClipboard: [string],\n selectFiber: [number],\n shutdown: [],\n stopInspectingNative: [boolean],\n syncSelectionFromNativeElementsPanel: [],\n syncSelectionToNativeElementsPanel: [],\n unsupportedRendererVersion: [RendererID],\n\n // React Native style editor plug-in.\n isNativeStyleEditorSupported: [\n {isSupported: boolean, validAttributes: ?$ReadOnlyArray},\n ],\n NativeStyleEditor_styleAndLayout: [StyleAndLayoutPayload],\n};\n\ntype FrontendEvents = {\n clearErrorsAndWarnings: [{rendererID: RendererID}],\n clearErrorsForFiberID: [ElementAndRendererID],\n clearNativeElementHighlight: [],\n clearWarningsForFiberID: [ElementAndRendererID],\n copyElementPath: [CopyElementPathParams],\n deletePath: [DeletePath],\n getBackendVersion: [],\n getBridgeProtocol: [],\n getOwnersList: [ElementAndRendererID],\n getProfilingData: [{rendererID: RendererID}],\n getProfilingStatus: [],\n highlightNativeElement: [HighlightElementInDOM],\n inspectElement: [InspectElementParams],\n logElementToConsole: [ElementAndRendererID],\n overrideError: [OverrideError],\n overrideSuspense: [OverrideSuspense],\n overrideValueAtPath: [OverrideValueAtPath],\n profilingData: [ProfilingDataBackend],\n reloadAndProfile: [boolean],\n renamePath: [RenamePath],\n savedPreferences: [SavedPreferencesParams],\n selectFiber: [number],\n setTraceUpdatesEnabled: [boolean],\n shutdown: [],\n startInspectingNative: [],\n startProfiling: [boolean],\n stopInspectingNative: [boolean],\n stopProfiling: [],\n storeAsGlobal: [StoreAsGlobalParams],\n updateComponentFilters: [Array],\n updateConsolePatchSettings: [ConsolePatchSettings],\n viewAttributeSource: [ViewAttributeSourceParams],\n viewElementSource: [ElementAndRendererID],\n\n // React Native style editor plug-in.\n NativeStyleEditor_measure: [ElementAndRendererID],\n NativeStyleEditor_renameAttribute: [NativeStyleEditor_RenameAttributeParams],\n NativeStyleEditor_setValue: [NativeStyleEditor_SetValueParams],\n\n // Temporarily support newer standalone front-ends sending commands to older embedded backends.\n // We do this because React Native embeds the React DevTools backend,\n // but cannot control which version of the frontend users use.\n //\n // Note that nothing in the newer backend actually listens to these events,\n // but the new frontend still dispatches them (in case older backends are listening to them instead).\n //\n // Note that this approach does no support the combination of a newer backend with an older frontend.\n // It would be more work to support both approaches (and not run handlers twice)\n // so I chose to support the more likely/common scenario (and the one more difficult for an end user to \"fix\").\n overrideContext: [OverrideValue],\n overrideHookState: [OverrideHookState],\n overrideProps: [OverrideValue],\n overrideState: [OverrideValue],\n};\n\nclass Bridge<\n OutgoingEvents: Object,\n IncomingEvents: Object,\n> extends EventEmitter<{\n ...IncomingEvents,\n ...OutgoingEvents,\n}> {\n _isShutdown: boolean = false;\n _messageQueue: Array = [];\n _timeoutID: TimeoutID | null = null;\n _wall: Wall;\n _wallUnlisten: Function | null = null;\n\n constructor(wall: Wall) {\n super();\n\n this._wall = wall;\n\n this._wallUnlisten =\n wall.listen((message: Message) => {\n if (message && message.event) {\n (this: any).emit(message.event, message.payload);\n }\n }) || null;\n\n // Temporarily support older standalone front-ends sending commands to newer embedded backends.\n // We do this because React Native embeds the React DevTools backend,\n // but cannot control which version of the frontend users use.\n this.addListener('overrideValueAtPath', this.overrideValueAtPath);\n }\n\n // Listening directly to the wall isn't advised.\n // It can be used to listen for legacy (v3) messages (since they use a different format).\n get wall(): Wall {\n return this._wall;\n }\n\n send>(\n event: EventName,\n ...payload: $ElementType\n ) {\n if (this._isShutdown) {\n console.warn(\n `Cannot send message \"${event}\" through a Bridge that has been shutdown.`,\n );\n return;\n }\n\n // When we receive a message:\n // - we add it to our queue of messages to be sent\n // - if there hasn't been a message recently, we set a timer for 0 ms in\n // the future, allowing all messages created in the same tick to be sent\n // together\n // - if there *has* been a message flushed in the last BATCH_DURATION ms\n // (or we're waiting for our setTimeout-0 to fire), then _timeoutID will\n // be set, and we'll simply add to the queue and wait for that\n this._messageQueue.push(event, payload);\n if (!this._timeoutID) {\n this._timeoutID = setTimeout(this._flush, 0);\n }\n }\n\n shutdown() {\n if (this._isShutdown) {\n console.warn('Bridge was already shutdown.');\n return;\n }\n\n // Queue the shutdown outgoing message for subscribers.\n this.emit('shutdown');\n this.send('shutdown');\n\n // Mark this bridge as destroyed, i.e. disable its public API.\n this._isShutdown = true;\n\n // Disable the API inherited from EventEmitter that can add more listeners and send more messages.\n // $FlowFixMe[cannot-write] This property is not writable.\n this.addListener = function () {};\n // $FlowFixMe[cannot-write] This property is not writable.\n this.emit = function () {};\n // NOTE: There's also EventEmitter API like `on` and `prependListener` that we didn't add to our Flow type of EventEmitter.\n\n // Unsubscribe this bridge incoming message listeners to be sure, and so they don't have to do that.\n this.removeAllListeners();\n\n // Stop accepting and emitting incoming messages from the wall.\n const wallUnlisten = this._wallUnlisten;\n if (wallUnlisten) {\n wallUnlisten();\n }\n\n // Synchronously flush all queued outgoing messages.\n // At this step the subscribers' code may run in this call stack.\n do {\n this._flush();\n } while (this._messageQueue.length);\n\n // Make sure once again that there is no dangling timer.\n if (this._timeoutID !== null) {\n clearTimeout(this._timeoutID);\n this._timeoutID = null;\n }\n }\n\n _flush: () => void = () => {\n // This method is used after the bridge is marked as destroyed in shutdown sequence,\n // so we do not bail out if the bridge marked as destroyed.\n // It is a private method that the bridge ensures is only called at the right times.\n\n if (this._timeoutID !== null) {\n clearTimeout(this._timeoutID);\n this._timeoutID = null;\n }\n\n if (this._messageQueue.length) {\n for (let i = 0; i < this._messageQueue.length; i += 2) {\n this._wall.send(this._messageQueue[i], ...this._messageQueue[i + 1]);\n }\n this._messageQueue.length = 0;\n\n // Check again for queued messages in BATCH_DURATION ms. This will keep\n // flushing in a loop as long as messages continue to be added. Once no\n // more are, the timer expires.\n this._timeoutID = setTimeout(this._flush, BATCH_DURATION);\n }\n };\n\n // Temporarily support older standalone backends by forwarding \"overrideValueAtPath\" commands\n // to the older message types they may be listening to.\n overrideValueAtPath: OverrideValueAtPath => void = ({\n id,\n path,\n rendererID,\n type,\n value,\n }: OverrideValueAtPath) => {\n switch (type) {\n case 'context':\n this.send('overrideContext', {\n id,\n path,\n rendererID,\n wasForwarded: true,\n value,\n });\n break;\n case 'hooks':\n this.send('overrideHookState', {\n id,\n path,\n rendererID,\n wasForwarded: true,\n value,\n });\n break;\n case 'props':\n this.send('overrideProps', {\n id,\n path,\n rendererID,\n wasForwarded: true,\n value,\n });\n break;\n case 'state':\n this.send('overrideState', {\n id,\n path,\n rendererID,\n wasForwarded: true,\n value,\n });\n break;\n }\n };\n}\n\nexport type BackendBridge = Bridge;\nexport type FrontendBridge = Bridge;\n\nexport default Bridge;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport EventEmitter from '../events';\nimport throttle from 'lodash.throttle';\nimport {\n SESSION_STORAGE_LAST_SELECTION_KEY,\n SESSION_STORAGE_RELOAD_AND_PROFILE_KEY,\n SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n __DEBUG__,\n} from '../constants';\nimport {\n sessionStorageGetItem,\n sessionStorageRemoveItem,\n sessionStorageSetItem,\n} from 'react-devtools-shared/src/storage';\nimport setupHighlighter from './views/Highlighter';\nimport {\n initialize as setupTraceUpdates,\n toggleEnabled as setTraceUpdatesEnabled,\n} from './views/TraceUpdates';\nimport {patch as patchConsole} from './console';\nimport {currentBridgeProtocol} from 'react-devtools-shared/src/bridge';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {\n InstanceAndStyle,\n NativeType,\n OwnersList,\n PathFrame,\n PathMatch,\n RendererID,\n RendererInterface,\n ConsolePatchSettings,\n} from './types';\nimport type {\n ComponentFilter,\n BrowserTheme,\n} from 'react-devtools-shared/src/types';\nimport {isSynchronousXHRSupported} from './utils';\n\nconst debug = (methodName: string, ...args: Array) => {\n if (__DEBUG__) {\n console.log(\n `%cAgent %c${methodName}`,\n 'color: purple; font-weight: bold;',\n 'font-weight: bold;',\n ...args,\n );\n }\n};\n\ntype ElementAndRendererID = {\n id: number,\n rendererID: number,\n};\n\ntype StoreAsGlobalParams = {\n count: number,\n id: number,\n path: Array,\n rendererID: number,\n};\n\ntype CopyElementParams = {\n id: number,\n path: Array,\n rendererID: number,\n};\n\ntype InspectElementParams = {\n forceFullData: boolean,\n id: number,\n path: Array | null,\n rendererID: number,\n requestID: number,\n};\n\ntype OverrideHookParams = {\n id: number,\n hookID: number,\n path: Array,\n rendererID: number,\n wasForwarded?: boolean,\n value: any,\n};\n\ntype SetInParams = {\n id: number,\n path: Array,\n rendererID: number,\n wasForwarded?: boolean,\n value: any,\n};\n\ntype PathType = 'props' | 'hooks' | 'state' | 'context';\n\ntype DeletePathParams = {\n type: PathType,\n hookID?: ?number,\n id: number,\n path: Array,\n rendererID: number,\n};\n\ntype RenamePathParams = {\n type: PathType,\n hookID?: ?number,\n id: number,\n oldPath: Array,\n newPath: Array,\n rendererID: number,\n};\n\ntype OverrideValueAtPathParams = {\n type: PathType,\n hookID?: ?number,\n id: number,\n path: Array,\n rendererID: number,\n value: any,\n};\n\ntype OverrideErrorParams = {\n id: number,\n rendererID: number,\n forceError: boolean,\n};\n\ntype OverrideSuspenseParams = {\n id: number,\n rendererID: number,\n forceFallback: boolean,\n};\n\ntype PersistedSelection = {\n rendererID: number,\n path: Array,\n};\n\nexport default class Agent extends EventEmitter<{\n hideNativeHighlight: [],\n showNativeHighlight: [NativeType],\n startInspectingNative: [],\n stopInspectingNative: [],\n shutdown: [],\n traceUpdates: [Set],\n drawTraceUpdates: [Array],\n disableTraceUpdates: [],\n}> {\n _bridge: BackendBridge;\n _isProfiling: boolean = false;\n _recordChangeDescriptions: boolean = false;\n _rendererInterfaces: {[key: RendererID]: RendererInterface, ...} = {};\n _persistedSelection: PersistedSelection | null = null;\n _persistedSelectionMatch: PathMatch | null = null;\n _traceUpdatesEnabled: boolean = false;\n\n constructor(bridge: BackendBridge) {\n super();\n\n if (\n sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true'\n ) {\n this._recordChangeDescriptions =\n sessionStorageGetItem(\n SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n ) === 'true';\n this._isProfiling = true;\n\n sessionStorageRemoveItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY);\n sessionStorageRemoveItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY);\n }\n\n const persistedSelectionString = sessionStorageGetItem(\n SESSION_STORAGE_LAST_SELECTION_KEY,\n );\n if (persistedSelectionString != null) {\n this._persistedSelection = JSON.parse(persistedSelectionString);\n }\n\n this._bridge = bridge;\n\n bridge.addListener('clearErrorsAndWarnings', this.clearErrorsAndWarnings);\n bridge.addListener('clearErrorsForFiberID', this.clearErrorsForFiberID);\n bridge.addListener('clearWarningsForFiberID', this.clearWarningsForFiberID);\n bridge.addListener('copyElementPath', this.copyElementPath);\n bridge.addListener('deletePath', this.deletePath);\n bridge.addListener('getBackendVersion', this.getBackendVersion);\n bridge.addListener('getBridgeProtocol', this.getBridgeProtocol);\n bridge.addListener('getProfilingData', this.getProfilingData);\n bridge.addListener('getProfilingStatus', this.getProfilingStatus);\n bridge.addListener('getOwnersList', this.getOwnersList);\n bridge.addListener('inspectElement', this.inspectElement);\n bridge.addListener('logElementToConsole', this.logElementToConsole);\n bridge.addListener('overrideError', this.overrideError);\n bridge.addListener('overrideSuspense', this.overrideSuspense);\n bridge.addListener('overrideValueAtPath', this.overrideValueAtPath);\n bridge.addListener('reloadAndProfile', this.reloadAndProfile);\n bridge.addListener('renamePath', this.renamePath);\n bridge.addListener('setTraceUpdatesEnabled', this.setTraceUpdatesEnabled);\n bridge.addListener('startProfiling', this.startProfiling);\n bridge.addListener('stopProfiling', this.stopProfiling);\n bridge.addListener('storeAsGlobal', this.storeAsGlobal);\n bridge.addListener(\n 'syncSelectionFromNativeElementsPanel',\n this.syncSelectionFromNativeElementsPanel,\n );\n bridge.addListener('shutdown', this.shutdown);\n bridge.addListener(\n 'updateConsolePatchSettings',\n this.updateConsolePatchSettings,\n );\n bridge.addListener('updateComponentFilters', this.updateComponentFilters);\n bridge.addListener('viewAttributeSource', this.viewAttributeSource);\n bridge.addListener('viewElementSource', this.viewElementSource);\n\n // Temporarily support older standalone front-ends sending commands to newer embedded backends.\n // We do this because React Native embeds the React DevTools backend,\n // but cannot control which version of the frontend users use.\n bridge.addListener('overrideContext', this.overrideContext);\n bridge.addListener('overrideHookState', this.overrideHookState);\n bridge.addListener('overrideProps', this.overrideProps);\n bridge.addListener('overrideState', this.overrideState);\n\n if (this._isProfiling) {\n bridge.send('profilingStatus', true);\n }\n\n // Send the Bridge protocol and backend versions, after initialization, in case the frontend has already requested it.\n // The Store may be instantiated beore the agent.\n const version = process.env.DEVTOOLS_VERSION;\n if (version) {\n this._bridge.send('backendVersion', version);\n }\n this._bridge.send('bridgeProtocol', currentBridgeProtocol);\n\n // Notify the frontend if the backend supports the Storage API (e.g. localStorage).\n // If not, features like reload-and-profile will not work correctly and must be disabled.\n let isBackendStorageAPISupported = false;\n try {\n localStorage.getItem('test');\n isBackendStorageAPISupported = true;\n } catch (error) {}\n bridge.send('isBackendStorageAPISupported', isBackendStorageAPISupported);\n bridge.send('isSynchronousXHRSupported', isSynchronousXHRSupported());\n\n setupHighlighter(bridge, this);\n setupTraceUpdates(this);\n }\n\n get rendererInterfaces(): {[key: RendererID]: RendererInterface, ...} {\n return this._rendererInterfaces;\n }\n\n clearErrorsAndWarnings: ({rendererID: RendererID}) => void = ({\n rendererID,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n } else {\n renderer.clearErrorsAndWarnings();\n }\n };\n\n clearErrorsForFiberID: ElementAndRendererID => void = ({id, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n } else {\n renderer.clearErrorsForFiberID(id);\n }\n };\n\n clearWarningsForFiberID: ElementAndRendererID => void = ({\n id,\n rendererID,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n } else {\n renderer.clearWarningsForFiberID(id);\n }\n };\n\n copyElementPath: CopyElementParams => void = ({\n id,\n path,\n rendererID,\n }: CopyElementParams) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n const value = renderer.getSerializedElementValueByPath(id, path);\n\n if (value != null) {\n this._bridge.send('saveToClipboard', value);\n } else {\n console.warn(`Unable to obtain serialized value for element \"${id}\"`);\n }\n }\n };\n\n deletePath: DeletePathParams => void = ({\n hookID,\n id,\n path,\n rendererID,\n type,\n }: DeletePathParams) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.deletePath(type, id, hookID, path);\n }\n };\n\n getInstanceAndStyle({\n id,\n rendererID,\n }: ElementAndRendererID): InstanceAndStyle | null {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n return null;\n }\n return renderer.getInstanceAndStyle(id);\n }\n\n getBestMatchingRendererInterface(node: Object): RendererInterface | null {\n let bestMatch = null;\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n const fiber = renderer.getFiberForNative(node);\n if (fiber !== null) {\n // check if fiber.stateNode is matching the original hostInstance\n if (fiber.stateNode === node) {\n return renderer;\n } else if (bestMatch === null) {\n bestMatch = renderer;\n }\n }\n }\n // if an exact match is not found, return the first valid renderer as fallback\n return bestMatch;\n }\n\n getIDForNode(node: Object): number | null {\n const rendererInterface = this.getBestMatchingRendererInterface(node);\n if (rendererInterface != null) {\n try {\n return rendererInterface.getFiberIDForNative(node, true);\n } catch (error) {\n // Some old React versions might throw if they can't find a match.\n // If so we should ignore it...\n }\n }\n return null;\n }\n\n getBackendVersion: () => void = () => {\n const version = process.env.DEVTOOLS_VERSION;\n if (version) {\n this._bridge.send('backendVersion', version);\n }\n };\n\n getBridgeProtocol: () => void = () => {\n this._bridge.send('bridgeProtocol', currentBridgeProtocol);\n };\n\n getProfilingData: ({rendererID: RendererID}) => void = ({rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n }\n\n this._bridge.send('profilingData', renderer.getProfilingData());\n };\n\n getProfilingStatus: () => void = () => {\n this._bridge.send('profilingStatus', this._isProfiling);\n };\n\n getOwnersList: ElementAndRendererID => void = ({id, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n const owners = renderer.getOwnersList(id);\n this._bridge.send('ownersList', ({id, owners}: OwnersList));\n }\n };\n\n inspectElement: InspectElementParams => void = ({\n forceFullData,\n id,\n path,\n rendererID,\n requestID,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n this._bridge.send(\n 'inspectedElement',\n renderer.inspectElement(requestID, id, path, forceFullData),\n );\n\n // When user selects an element, stop trying to restore the selection,\n // and instead remember the current selection for the next reload.\n if (\n this._persistedSelectionMatch === null ||\n this._persistedSelectionMatch.id !== id\n ) {\n this._persistedSelection = null;\n this._persistedSelectionMatch = null;\n renderer.setTrackedPath(null);\n this._throttledPersistSelection(rendererID, id);\n }\n\n // TODO: If there was a way to change the selected DOM element\n // in native Elements tab without forcing a switch to it, we'd do it here.\n // For now, it doesn't seem like there is a way to do that:\n // https://github.com/bvaughn/react-devtools-experimental/issues/102\n // (Setting $0 doesn't work, and calling inspect() switches the tab.)\n }\n };\n\n logElementToConsole: ElementAndRendererID => void = ({id, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.logElementToConsole(id);\n }\n };\n\n overrideError: OverrideErrorParams => void = ({\n id,\n rendererID,\n forceError,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.overrideError(id, forceError);\n }\n };\n\n overrideSuspense: OverrideSuspenseParams => void = ({\n id,\n rendererID,\n forceFallback,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.overrideSuspense(id, forceFallback);\n }\n };\n\n overrideValueAtPath: OverrideValueAtPathParams => void = ({\n hookID,\n id,\n path,\n rendererID,\n type,\n value,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.overrideValueAtPath(type, id, hookID, path, value);\n }\n };\n\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n overrideContext: SetInParams => void = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }) => {\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n this.overrideValueAtPath({\n id,\n path,\n rendererID,\n type: 'context',\n value,\n });\n }\n };\n\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n overrideHookState: OverrideHookParams => void = ({\n id,\n hookID,\n path,\n rendererID,\n wasForwarded,\n value,\n }) => {\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n this.overrideValueAtPath({\n id,\n path,\n rendererID,\n type: 'hooks',\n value,\n });\n }\n };\n\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n overrideProps: SetInParams => void = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }) => {\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n this.overrideValueAtPath({\n id,\n path,\n rendererID,\n type: 'props',\n value,\n });\n }\n };\n\n // Temporarily support older standalone front-ends by forwarding the older message types\n // to the new \"overrideValueAtPath\" command the backend is now listening to.\n overrideState: SetInParams => void = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }) => {\n // Don't forward a message that's already been forwarded by the front-end Bridge.\n // We only need to process the override command once!\n if (!wasForwarded) {\n this.overrideValueAtPath({\n id,\n path,\n rendererID,\n type: 'state',\n value,\n });\n }\n };\n\n reloadAndProfile: (recordChangeDescriptions: boolean) => void =\n recordChangeDescriptions => {\n sessionStorageSetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY, 'true');\n sessionStorageSetItem(\n SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n recordChangeDescriptions ? 'true' : 'false',\n );\n\n // This code path should only be hit if the shell has explicitly told the Store that it supports profiling.\n // In that case, the shell must also listen for this specific message to know when it needs to reload the app.\n // The agent can't do this in a way that is renderer agnostic.\n this._bridge.send('reloadAppForProfiling');\n };\n\n renamePath: RenamePathParams => void = ({\n hookID,\n id,\n newPath,\n oldPath,\n rendererID,\n type,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.renamePath(type, id, hookID, oldPath, newPath);\n }\n };\n\n selectNode(target: Object): void {\n const id = this.getIDForNode(target);\n if (id !== null) {\n this._bridge.send('selectFiber', id);\n }\n }\n\n setRendererInterface(\n rendererID: RendererID,\n rendererInterface: RendererInterface,\n ) {\n this._rendererInterfaces[rendererID] = rendererInterface;\n\n if (this._isProfiling) {\n rendererInterface.startProfiling(this._recordChangeDescriptions);\n }\n\n rendererInterface.setTraceUpdatesEnabled(this._traceUpdatesEnabled);\n\n // When the renderer is attached, we need to tell it whether\n // we remember the previous selection that we'd like to restore.\n // It'll start tracking mounts for matches to the last selection path.\n const selection = this._persistedSelection;\n if (selection !== null && selection.rendererID === rendererID) {\n rendererInterface.setTrackedPath(selection.path);\n }\n }\n\n setTraceUpdatesEnabled: (traceUpdatesEnabled: boolean) => void =\n traceUpdatesEnabled => {\n this._traceUpdatesEnabled = traceUpdatesEnabled;\n\n setTraceUpdatesEnabled(traceUpdatesEnabled);\n\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n renderer.setTraceUpdatesEnabled(traceUpdatesEnabled);\n }\n };\n\n syncSelectionFromNativeElementsPanel: () => void = () => {\n const target = window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0;\n if (target == null) {\n return;\n }\n this.selectNode(target);\n };\n\n shutdown: () => void = () => {\n // Clean up the overlay if visible, and associated events.\n this.emit('shutdown');\n };\n\n startProfiling: (recordChangeDescriptions: boolean) => void =\n recordChangeDescriptions => {\n this._recordChangeDescriptions = recordChangeDescriptions;\n this._isProfiling = true;\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n renderer.startProfiling(recordChangeDescriptions);\n }\n this._bridge.send('profilingStatus', this._isProfiling);\n };\n\n stopProfiling: () => void = () => {\n this._isProfiling = false;\n this._recordChangeDescriptions = false;\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n renderer.stopProfiling();\n }\n this._bridge.send('profilingStatus', this._isProfiling);\n };\n\n stopInspectingNative: (selected: boolean) => void = selected => {\n this._bridge.send('stopInspectingNative', selected);\n };\n\n storeAsGlobal: StoreAsGlobalParams => void = ({\n count,\n id,\n path,\n rendererID,\n }) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.storeAsGlobal(id, path, count);\n }\n };\n\n updateConsolePatchSettings: ({\n appendComponentStack: boolean,\n breakOnConsoleErrors: boolean,\n browserTheme: BrowserTheme,\n hideConsoleLogsInStrictMode: boolean,\n showInlineWarningsAndErrors: boolean,\n }) => void = ({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n }: ConsolePatchSettings) => {\n // If the frontend preferences have changed,\n // or in the case of React Native- if the backend is just finding out the preferences-\n // then reinstall the console overrides.\n // It's safe to call `patchConsole` multiple times.\n patchConsole({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n });\n };\n\n updateComponentFilters: (componentFilters: Array) => void =\n componentFilters => {\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n renderer.updateComponentFilters(componentFilters);\n }\n };\n\n viewAttributeSource: CopyElementParams => void = ({id, path, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.prepareViewAttributeSource(id, path);\n }\n };\n\n viewElementSource: ElementAndRendererID => void = ({id, rendererID}) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.prepareViewElementSource(id);\n }\n };\n\n onTraceUpdates: (nodes: Set) => void = nodes => {\n this.emit('traceUpdates', nodes);\n };\n\n onFastRefreshScheduled: () => void = () => {\n if (__DEBUG__) {\n debug('onFastRefreshScheduled');\n }\n\n this._bridge.send('fastRefreshScheduled');\n };\n\n onHookOperations: (operations: Array) => void = operations => {\n if (__DEBUG__) {\n debug(\n 'onHookOperations',\n `(${operations.length}) [${operations.join(', ')}]`,\n );\n }\n\n // TODO:\n // The chrome.runtime does not currently support transferables; it forces JSON serialization.\n // See bug https://bugs.chromium.org/p/chromium/issues/detail?id=927134\n //\n // Regarding transferables, the postMessage doc states:\n // If the ownership of an object is transferred, it becomes unusable (neutered)\n // in the context it was sent from and becomes available only to the worker it was sent to.\n //\n // Even though Chrome is eventually JSON serializing the array buffer,\n // using the transferable approach also sometimes causes it to throw:\n // DOMException: Failed to execute 'postMessage' on 'Window': ArrayBuffer at index 0 is already neutered.\n //\n // See bug https://github.com/bvaughn/react-devtools-experimental/issues/25\n //\n // The Store has a fallback in place that parses the message as JSON if the type isn't an array.\n // For now the simplest fix seems to be to not transfer the array.\n // This will negatively impact performance on Firefox so it's unfortunate,\n // but until we're able to fix the Chrome error mentioned above, it seems necessary.\n //\n // this._bridge.send('operations', operations, [operations.buffer]);\n this._bridge.send('operations', operations);\n\n if (this._persistedSelection !== null) {\n const rendererID = operations[0];\n if (this._persistedSelection.rendererID === rendererID) {\n // Check if we can select a deeper match for the persisted selection.\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\"`);\n } else {\n const prevMatch = this._persistedSelectionMatch;\n const nextMatch = renderer.getBestMatchForTrackedPath();\n this._persistedSelectionMatch = nextMatch;\n const prevMatchID = prevMatch !== null ? prevMatch.id : null;\n const nextMatchID = nextMatch !== null ? nextMatch.id : null;\n if (prevMatchID !== nextMatchID) {\n if (nextMatchID !== null) {\n // We moved forward, unlocking a deeper node.\n this._bridge.send('selectFiber', nextMatchID);\n }\n }\n if (nextMatch !== null && nextMatch.isFullMatch) {\n // We've just unlocked the innermost selected node.\n // There's no point tracking it further.\n this._persistedSelection = null;\n this._persistedSelectionMatch = null;\n renderer.setTrackedPath(null);\n }\n }\n }\n }\n };\n\n onUnsupportedRenderer(rendererID: number) {\n this._bridge.send('unsupportedRendererVersion', rendererID);\n }\n\n _throttledPersistSelection: any = throttle(\n (rendererID: number, id: number) => {\n // This is throttled, so both renderer and selected ID\n // might not be available by the time we read them.\n // This is why we need the defensive checks here.\n const renderer = this._rendererInterfaces[rendererID];\n const path = renderer != null ? renderer.getPathForElement(id) : null;\n if (path !== null) {\n sessionStorageSetItem(\n SESSION_STORAGE_LAST_SELECTION_KEY,\n JSON.stringify(({rendererID, path}: PersistedSelection)),\n );\n } else {\n sessionStorageRemoveItem(SESSION_STORAGE_LAST_SELECTION_KEY);\n }\n },\n 1000,\n );\n}\n","/**\n * Install the hook on window, which is an event emitter.\n * Note: this global hook __REACT_DEVTOOLS_GLOBAL_HOOK__ is a de facto public API.\n * It's especially important to avoid creating direct dependency on the DevTools Backend.\n * That's why we still inline the whole event emitter implementation,\n * the string format implementation, and part of the console implementation here.\n *\n * @flow\n */\n\nimport type {BrowserTheme} from './types';\nimport type {\n DevToolsHook,\n Handler,\n ReactRenderer,\n RendererID,\n RendererInterface,\n DevToolsBackend,\n} from './backend/types';\n\ndeclare var window: any;\n\nexport function installHook(target: any): DevToolsHook | null {\n if (target.hasOwnProperty('__REACT_DEVTOOLS_GLOBAL_HOOK__')) {\n return null;\n }\n\n let targetConsole: Object = console;\n let targetConsoleMethods: {[string]: $FlowFixMe} = {};\n for (const method in console) {\n targetConsoleMethods[method] = console[method];\n }\n\n function dangerous_setTargetConsoleForTesting(\n targetConsoleForTesting: Object,\n ): void {\n targetConsole = targetConsoleForTesting;\n\n targetConsoleMethods = ({}: {[string]: $FlowFixMe});\n for (const method in targetConsole) {\n targetConsoleMethods[method] = console[method];\n }\n }\n\n function detectReactBuildType(renderer: ReactRenderer) {\n try {\n if (typeof renderer.version === 'string') {\n // React DOM Fiber (16+)\n if (renderer.bundleType > 0) {\n // This is not a production build.\n // We are currently only using 0 (PROD) and 1 (DEV)\n // but might add 2 (PROFILE) in the future.\n return 'development';\n }\n\n // React 16 uses flat bundles. If we report the bundle as production\n // version, it means we also minified and envified it ourselves.\n return 'production';\n // Note: There is still a risk that the CommonJS entry point has not\n // been envified or uglified. In this case the user would have *both*\n // development and production bundle, but only the prod one would run.\n // This would be really bad. We have a separate check for this because\n // it happens *outside* of the renderer injection. See `checkDCE` below.\n }\n\n // $FlowFixMe[method-unbinding]\n const toString = Function.prototype.toString;\n if (renderer.Mount && renderer.Mount._renderNewRootComponent) {\n // React DOM Stack\n const renderRootCode = toString.call(\n renderer.Mount._renderNewRootComponent,\n );\n // Filter out bad results (if that is even possible):\n if (renderRootCode.indexOf('function') !== 0) {\n // Hope for the best if we're not sure.\n return 'production';\n }\n // Check for React DOM Stack < 15.1.0 in development.\n // If it contains \"storedMeasure\" call, it's wrapped in ReactPerf (DEV only).\n // This would be true even if it's minified, as method name still matches.\n if (renderRootCode.indexOf('storedMeasure') !== -1) {\n return 'development';\n }\n // For other versions (and configurations) it's not so easy.\n // Let's quickly exclude proper production builds.\n // If it contains a warning message, it's either a DEV build,\n // or an PROD build without proper dead code elimination.\n if (renderRootCode.indexOf('should be a pure function') !== -1) {\n // Now how do we tell a DEV build from a bad PROD build?\n // If we see NODE_ENV, we're going to assume this is a dev build\n // because most likely it is referring to an empty shim.\n if (renderRootCode.indexOf('NODE_ENV') !== -1) {\n return 'development';\n }\n // If we see \"development\", we're dealing with an envified DEV build\n // (such as the official React DEV UMD).\n if (renderRootCode.indexOf('development') !== -1) {\n return 'development';\n }\n // I've seen process.env.NODE_ENV !== 'production' being smartly\n // replaced by `true` in DEV by Webpack. I don't know how that\n // works but we can safely guard against it because `true` was\n // never used in the function source since it was written.\n if (renderRootCode.indexOf('true') !== -1) {\n return 'development';\n }\n // By now either it is a production build that has not been minified,\n // or (worse) this is a minified development build using non-standard\n // environment (e.g. \"staging\"). We're going to look at whether\n // the function argument name is mangled:\n if (\n // 0.13 to 15\n renderRootCode.indexOf('nextElement') !== -1 ||\n // 0.12\n renderRootCode.indexOf('nextComponent') !== -1\n ) {\n // We can't be certain whether this is a development build or not,\n // but it is definitely unminified.\n return 'unminified';\n } else {\n // This is likely a minified development build.\n return 'development';\n }\n }\n // By now we know that it's envified and dead code elimination worked,\n // but what if it's still not minified? (Is this even possible?)\n // Let's check matches for the first argument name.\n if (\n // 0.13 to 15\n renderRootCode.indexOf('nextElement') !== -1 ||\n // 0.12\n renderRootCode.indexOf('nextComponent') !== -1\n ) {\n return 'unminified';\n }\n // Seems like we're using the production version.\n // However, the branch above is Stack-only so this is 15 or earlier.\n return 'outdated';\n }\n } catch (err) {\n // Weird environments may exist.\n // This code needs a higher fault tolerance\n // because it runs even with closed DevTools.\n // TODO: should we catch errors in all injected code, and not just this part?\n }\n return 'production';\n }\n\n function checkDCE(fn: Function) {\n // This runs for production versions of React.\n // Needs to be super safe.\n try {\n // $FlowFixMe[method-unbinding]\n const toString = Function.prototype.toString;\n const code = toString.call(fn);\n\n // This is a string embedded in the passed function under DEV-only\n // condition. However the function executes only in PROD. Therefore,\n // if we see it, dead code elimination did not work.\n if (code.indexOf('^_^') > -1) {\n // Remember to report during next injection.\n hasDetectedBadDCE = true;\n\n // Bonus: throw an exception hoping that it gets picked up by a reporting system.\n // Not synchronously so that it doesn't break the calling code.\n setTimeout(function () {\n throw new Error(\n 'React is running in production mode, but dead code ' +\n 'elimination has not been applied. Read how to correctly ' +\n 'configure React for production: ' +\n 'https://reactjs.org/link/perf-use-production-build',\n );\n });\n }\n } catch (err) {}\n }\n\n // NOTE: KEEP IN SYNC with src/backend/utils.js\n function formatWithStyles(\n inputArgs: $ReadOnlyArray,\n style?: string,\n ): $ReadOnlyArray {\n if (\n inputArgs === undefined ||\n inputArgs === null ||\n inputArgs.length === 0 ||\n // Matches any of %c but not %%c\n (typeof inputArgs[0] === 'string' &&\n inputArgs[0].match(/([^%]|^)(%c)/g)) ||\n style === undefined\n ) {\n return inputArgs;\n }\n\n // Matches any of %(o|O|d|i|s|f), but not %%(o|O|d|i|s|f)\n const REGEXP = /([^%]|^)((%%)*)(%([oOdisf]))/g;\n if (typeof inputArgs[0] === 'string' && inputArgs[0].match(REGEXP)) {\n return [`%c${inputArgs[0]}`, style, ...inputArgs.slice(1)];\n } else {\n const firstArg = inputArgs.reduce((formatStr, elem, i) => {\n if (i > 0) {\n formatStr += ' ';\n }\n switch (typeof elem) {\n case 'string':\n case 'boolean':\n case 'symbol':\n return (formatStr += '%s');\n case 'number':\n const formatting = Number.isInteger(elem) ? '%i' : '%f';\n return (formatStr += formatting);\n default:\n return (formatStr += '%o');\n }\n }, '%c');\n return [firstArg, style, ...inputArgs];\n }\n }\n\n let unpatchFn = null;\n\n // NOTE: KEEP IN SYNC with src/backend/console.js:patchForStrictMode\n // This function hides or dims console logs during the initial double renderer\n // in Strict Mode. We need this function because during initial render,\n // React and DevTools are connecting and the renderer interface isn't avaiable\n // and we want to be able to have consistent logging behavior for double logs\n // during the initial renderer.\n function patchConsoleForInitialRenderInStrictMode({\n hideConsoleLogsInStrictMode,\n browserTheme,\n }: {\n hideConsoleLogsInStrictMode: boolean,\n browserTheme: BrowserTheme,\n }) {\n const overrideConsoleMethods = [\n 'error',\n 'group',\n 'groupCollapsed',\n 'info',\n 'log',\n 'trace',\n 'warn',\n ];\n\n if (unpatchFn !== null) {\n // Don't patch twice.\n return;\n }\n\n const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n unpatchFn = () => {\n for (const method in originalConsoleMethods) {\n try {\n targetConsole[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n };\n\n overrideConsoleMethods.forEach(method => {\n try {\n const originalMethod = (originalConsoleMethods[method] = targetConsole[\n method\n ].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n ? targetConsole[method].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n : targetConsole[method]);\n\n const overrideMethod = (...args: $ReadOnlyArray) => {\n if (!hideConsoleLogsInStrictMode) {\n // Dim the text color of the double logs if we're not\n // hiding them.\n let color;\n switch (method) {\n case 'warn':\n color =\n browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_WARNING_COLOR\n : process.env.DARK_MODE_DIMMED_WARNING_COLOR;\n break;\n case 'error':\n color =\n browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_ERROR_COLOR\n : process.env.DARK_MODE_DIMMED_ERROR_COLOR;\n break;\n case 'log':\n default:\n color =\n browserTheme === 'light'\n ? process.env.LIGHT_MODE_DIMMED_LOG_COLOR\n : process.env.DARK_MODE_DIMMED_LOG_COLOR;\n break;\n }\n\n if (color) {\n originalMethod(...formatWithStyles(args, `color: ${color}`));\n } else {\n throw Error('Console color is not defined');\n }\n }\n };\n\n overrideMethod.__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__ =\n originalMethod;\n originalMethod.__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__ =\n overrideMethod;\n\n targetConsole[method] = overrideMethod;\n } catch (error) {}\n });\n }\n\n // NOTE: KEEP IN SYNC with src/backend/console.js:unpatchForStrictMode\n function unpatchConsoleForInitialRenderInStrictMode() {\n if (unpatchFn !== null) {\n unpatchFn();\n unpatchFn = null;\n }\n }\n\n let uidCounter = 0;\n\n function inject(renderer: ReactRenderer) {\n const id = ++uidCounter;\n renderers.set(id, renderer);\n\n const reactBuildType = hasDetectedBadDCE\n ? 'deadcode'\n : detectReactBuildType(renderer);\n\n // Patching the console enables DevTools to do a few useful things:\n // * Append component stacks to warnings and error messages\n // * Disabling or marking logs during a double render in Strict Mode\n // * Disable logging during re-renders to inspect hooks (see inspectHooksOfFiber)\n //\n // Allow patching console early (during injection) to\n // provide developers with components stacks even if they don't run DevTools.\n if (target.hasOwnProperty('__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__')) {\n const {registerRendererWithConsole, patchConsoleUsingWindowValues} =\n target.__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__;\n if (\n typeof registerRendererWithConsole === 'function' &&\n typeof patchConsoleUsingWindowValues === 'function'\n ) {\n registerRendererWithConsole(renderer);\n patchConsoleUsingWindowValues();\n }\n }\n\n // If we have just reloaded to profile, we need to inject the renderer interface before the app loads.\n // Otherwise the renderer won't yet exist and we can skip this step.\n const attach = target.__REACT_DEVTOOLS_ATTACH__;\n if (typeof attach === 'function') {\n const rendererInterface = attach(hook, id, renderer, target);\n hook.rendererInterfaces.set(id, rendererInterface);\n }\n\n hook.emit('renderer', {\n id,\n renderer,\n reactBuildType,\n });\n\n return id;\n }\n\n let hasDetectedBadDCE = false;\n\n function sub(event: string, fn: Handler) {\n hook.on(event, fn);\n return () => hook.off(event, fn);\n }\n\n function on(event: string, fn: Handler) {\n if (!listeners[event]) {\n listeners[event] = [];\n }\n listeners[event].push(fn);\n }\n\n function off(event: string, fn: Handler) {\n if (!listeners[event]) {\n return;\n }\n const index = listeners[event].indexOf(fn);\n if (index !== -1) {\n listeners[event].splice(index, 1);\n }\n if (!listeners[event].length) {\n delete listeners[event];\n }\n }\n\n function emit(event: string, data: any) {\n if (listeners[event]) {\n listeners[event].map(fn => fn(data));\n }\n }\n\n function getFiberRoots(rendererID: RendererID) {\n const roots = fiberRoots;\n if (!roots[rendererID]) {\n roots[rendererID] = new Set();\n }\n return roots[rendererID];\n }\n\n function onCommitFiberUnmount(rendererID: RendererID, fiber: any) {\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n rendererInterface.handleCommitFiberUnmount(fiber);\n }\n }\n\n function onCommitFiberRoot(\n rendererID: RendererID,\n root: any,\n priorityLevel: void | number,\n ) {\n const mountedRoots = hook.getFiberRoots(rendererID);\n const current = root.current;\n const isKnownRoot = mountedRoots.has(root);\n const isUnmounting =\n current.memoizedState == null || current.memoizedState.element == null;\n\n // Keep track of mounted roots so we can hydrate when DevTools connect.\n if (!isKnownRoot && !isUnmounting) {\n mountedRoots.add(root);\n } else if (isKnownRoot && isUnmounting) {\n mountedRoots.delete(root);\n }\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n rendererInterface.handleCommitFiberRoot(root, priorityLevel);\n }\n }\n\n function onPostCommitFiberRoot(rendererID: RendererID, root: any) {\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n rendererInterface.handlePostCommitFiberRoot(root);\n }\n }\n\n function setStrictMode(rendererID: RendererID, isStrictMode: any) {\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n if (isStrictMode) {\n rendererInterface.patchConsoleForStrictMode();\n } else {\n rendererInterface.unpatchConsoleForStrictMode();\n }\n } else {\n // This should only happen during initial render in the extension before DevTools\n // finishes its handshake with the injected renderer\n if (isStrictMode) {\n const hideConsoleLogsInStrictMode =\n window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__ === true;\n const browserTheme = window.__REACT_DEVTOOLS_BROWSER_THEME__;\n\n patchConsoleForInitialRenderInStrictMode({\n hideConsoleLogsInStrictMode,\n browserTheme,\n });\n } else {\n unpatchConsoleForInitialRenderInStrictMode();\n }\n }\n }\n\n type StackFrameString = string;\n\n const openModuleRangesStack: Array = [];\n const moduleRanges: Array<[StackFrameString, StackFrameString]> = [];\n\n function getTopStackFrameString(error: Error): StackFrameString | null {\n const frames = error.stack.split('\\n');\n const frame = frames.length > 1 ? frames[1] : null;\n return frame;\n }\n\n function getInternalModuleRanges(): Array<\n [StackFrameString, StackFrameString],\n > {\n return moduleRanges;\n }\n\n function registerInternalModuleStart(error: Error) {\n const startStackFrame = getTopStackFrameString(error);\n if (startStackFrame !== null) {\n openModuleRangesStack.push(startStackFrame);\n }\n }\n\n function registerInternalModuleStop(error: Error) {\n if (openModuleRangesStack.length > 0) {\n const startStackFrame = openModuleRangesStack.pop();\n const stopStackFrame = getTopStackFrameString(error);\n if (stopStackFrame !== null) {\n moduleRanges.push([startStackFrame, stopStackFrame]);\n }\n }\n }\n\n // TODO: More meaningful names for \"rendererInterfaces\" and \"renderers\".\n const fiberRoots: {[RendererID]: Set} = {};\n const rendererInterfaces = new Map();\n const listeners: {[string]: Array} = {};\n const renderers = new Map();\n const backends = new Map();\n\n const hook: DevToolsHook = {\n rendererInterfaces,\n listeners,\n\n backends,\n\n // Fast Refresh for web relies on this.\n renderers,\n\n emit,\n getFiberRoots,\n inject,\n on,\n off,\n sub,\n\n // This is a legacy flag.\n // React v16 checks the hook for this to ensure DevTools is new enough.\n supportsFiber: true,\n\n // React calls these methods.\n checkDCE,\n onCommitFiberUnmount,\n onCommitFiberRoot,\n onPostCommitFiberRoot,\n setStrictMode,\n\n // Schedule Profiler runtime helpers.\n // These internal React modules to report their own boundaries\n // which in turn enables the profiler to dim or filter internal frames.\n getInternalModuleRanges,\n registerInternalModuleStart,\n registerInternalModuleStop,\n };\n\n if (__TEST__) {\n hook.dangerous_setTargetConsoleForTesting =\n dangerous_setTargetConsoleForTesting;\n }\n\n Object.defineProperty(\n target,\n '__REACT_DEVTOOLS_GLOBAL_HOOK__',\n ({\n // This property needs to be configurable for the test environment,\n // else we won't be able to delete and recreate it between tests.\n configurable: __DEV__,\n enumerable: false,\n get() {\n return hook;\n },\n }: Object),\n );\n\n return hook;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {InternalInstance} from './renderer';\n\nexport function decorate(object: Object, attr: string, fn: Function): Function {\n const old = object[attr];\n // $FlowFixMe[missing-this-annot] webpack config needs to be updated to allow `this` type annotations\n object[attr] = function (instance: InternalInstance) {\n return fn.call(this, old, arguments);\n };\n return old;\n}\n\nexport function decorateMany(\n source: Object,\n fns: {[attr: string]: Function, ...},\n): Object {\n const olds: {[string]: $FlowFixMe} = {};\n for (const name in fns) {\n olds[name] = decorate(source, name, fns[name]);\n }\n return olds;\n}\n\nexport function restoreMany(source: Object, olds: Object): void {\n for (const name in olds) {\n source[name] = olds[name];\n }\n}\n\n// $FlowFixMe[missing-this-annot] webpack config needs to be updated to allow `this` type annotations\nexport function forceUpdate(instance: InternalInstance): void {\n if (typeof instance.forceUpdate === 'function') {\n instance.forceUpdate();\n } else if (\n instance.updater != null &&\n typeof instance.updater.enqueueForceUpdate === 'function'\n ) {\n instance.updater.enqueueForceUpdate(this, () => {}, 'forceUpdate');\n }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n ElementTypeClass,\n ElementTypeFunction,\n ElementTypeRoot,\n ElementTypeHostComponent,\n ElementTypeOtherOrUnknown,\n} from 'react-devtools-shared/src/types';\nimport {getUID, utfEncodeString, printOperationsArray} from '../../utils';\nimport {\n cleanForBridge,\n copyWithDelete,\n copyWithRename,\n copyWithSet,\n serializeToString,\n} from '../utils';\nimport {\n deletePathInObject,\n getDisplayName,\n getInObject,\n renamePathInObject,\n setInObject,\n} from 'react-devtools-shared/src/utils';\nimport {\n __DEBUG__,\n TREE_OPERATION_ADD,\n TREE_OPERATION_REMOVE,\n TREE_OPERATION_REORDER_CHILDREN,\n} from '../../constants';\nimport {decorateMany, forceUpdate, restoreMany} from './utils';\n\nimport type {\n DevToolsHook,\n GetFiberIDForNative,\n InspectedElementPayload,\n InstanceAndStyle,\n NativeType,\n PathFrame,\n PathMatch,\n RendererInterface,\n} from '../types';\nimport type {\n ComponentFilter,\n ElementType,\n} from 'react-devtools-shared/src/types';\nimport type {InspectedElement, SerializedElement} from '../types';\n\nexport type InternalInstance = Object;\ntype LegacyRenderer = Object;\n\nfunction getData(internalInstance: InternalInstance) {\n let displayName = null;\n let key = null;\n\n // != used deliberately here to catch undefined and null\n if (internalInstance._currentElement != null) {\n if (internalInstance._currentElement.key) {\n key = String(internalInstance._currentElement.key);\n }\n\n const elementType = internalInstance._currentElement.type;\n if (typeof elementType === 'string') {\n displayName = elementType;\n } else if (typeof elementType === 'function') {\n displayName = getDisplayName(elementType);\n }\n }\n\n return {\n displayName,\n key,\n };\n}\n\nfunction getElementType(internalInstance: InternalInstance): ElementType {\n // != used deliberately here to catch undefined and null\n if (internalInstance._currentElement != null) {\n const elementType = internalInstance._currentElement.type;\n if (typeof elementType === 'function') {\n const publicInstance = internalInstance.getPublicInstance();\n if (publicInstance !== null) {\n return ElementTypeClass;\n } else {\n return ElementTypeFunction;\n }\n } else if (typeof elementType === 'string') {\n return ElementTypeHostComponent;\n }\n }\n return ElementTypeOtherOrUnknown;\n}\n\nfunction getChildren(internalInstance: Object): Array {\n const children = [];\n\n // If the parent is a native node without rendered children, but with\n // multiple string children, then the `element` that gets passed in here is\n // a plain value -- a string or number.\n if (typeof internalInstance !== 'object') {\n // No children\n } else if (\n internalInstance._currentElement === null ||\n internalInstance._currentElement === false\n ) {\n // No children\n } else if (internalInstance._renderedComponent) {\n const child = internalInstance._renderedComponent;\n if (getElementType(child) !== ElementTypeOtherOrUnknown) {\n children.push(child);\n }\n } else if (internalInstance._renderedChildren) {\n const renderedChildren = internalInstance._renderedChildren;\n for (const name in renderedChildren) {\n const child = renderedChildren[name];\n if (getElementType(child) !== ElementTypeOtherOrUnknown) {\n children.push(child);\n }\n }\n }\n // Note: we skip the case where children are just strings or numbers\n // because the new DevTools skips over host text nodes anyway.\n return children;\n}\n\nexport function attach(\n hook: DevToolsHook,\n rendererID: number,\n renderer: LegacyRenderer,\n global: Object,\n): RendererInterface {\n const idToInternalInstanceMap: Map = new Map();\n const internalInstanceToIDMap: WeakMap =\n new WeakMap();\n const internalInstanceToRootIDMap: WeakMap =\n new WeakMap();\n\n let getInternalIDForNative: GetFiberIDForNative =\n ((null: any): GetFiberIDForNative);\n let findNativeNodeForInternalID: (id: number) => ?NativeType;\n let getFiberForNative = (node: NativeType) => {\n // Not implemented.\n return null;\n };\n\n if (renderer.ComponentTree) {\n getInternalIDForNative = (node, findNearestUnfilteredAncestor) => {\n const internalInstance =\n renderer.ComponentTree.getClosestInstanceFromNode(node);\n return internalInstanceToIDMap.get(internalInstance) || null;\n };\n findNativeNodeForInternalID = (id: number) => {\n const internalInstance = idToInternalInstanceMap.get(id);\n return renderer.ComponentTree.getNodeFromInstance(internalInstance);\n };\n getFiberForNative = (node: NativeType) => {\n return renderer.ComponentTree.getClosestInstanceFromNode(node);\n };\n } else if (renderer.Mount.getID && renderer.Mount.getNode) {\n getInternalIDForNative = (node, findNearestUnfilteredAncestor) => {\n // Not implemented.\n return null;\n };\n findNativeNodeForInternalID = (id: number) => {\n // Not implemented.\n return null;\n };\n }\n\n function getDisplayNameForFiberID(id: number): string | null {\n const internalInstance = idToInternalInstanceMap.get(id);\n return internalInstance ? getData(internalInstance).displayName : null;\n }\n\n function getID(internalInstance: InternalInstance): number {\n if (typeof internalInstance !== 'object' || internalInstance === null) {\n throw new Error('Invalid internal instance: ' + internalInstance);\n }\n if (!internalInstanceToIDMap.has(internalInstance)) {\n const id = getUID();\n internalInstanceToIDMap.set(internalInstance, id);\n idToInternalInstanceMap.set(id, internalInstance);\n }\n return ((internalInstanceToIDMap.get(internalInstance): any): number);\n }\n\n function areEqualArrays(a: Array, b: Array) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n\n // This is shared mutable state that lets us keep track of where we are.\n let parentIDStack = [];\n\n let oldReconcilerMethods = null;\n if (renderer.Reconciler) {\n // React 15\n oldReconcilerMethods = decorateMany(renderer.Reconciler, {\n mountComponent(fn, args) {\n const internalInstance = args[0];\n const hostContainerInfo = args[3];\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n if (hostContainerInfo._topLevelWrapper === undefined) {\n // SSR\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n // Push the operation.\n const parentID =\n parentIDStack.length > 0\n ? parentIDStack[parentIDStack.length - 1]\n : 0;\n recordMount(internalInstance, id, parentID);\n parentIDStack.push(id);\n\n // Remember the root.\n internalInstanceToRootIDMap.set(\n internalInstance,\n getID(hostContainerInfo._topLevelWrapper),\n );\n\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n const result = fn.apply(this, args);\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n const rootID = internalInstanceToRootIDMap.get(internalInstance);\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n flushPendingEvents(rootID);\n }\n }\n },\n performUpdateIfNecessary(fn, args) {\n const internalInstance = args[0];\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n parentIDStack.push(id);\n\n const prevChildren = getChildren(internalInstance);\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n const result = fn.apply(this, args);\n\n const nextChildren = getChildren(internalInstance);\n if (!areEqualArrays(prevChildren, nextChildren)) {\n // Push the operation\n recordReorder(internalInstance, id, nextChildren);\n }\n\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n const rootID = internalInstanceToRootIDMap.get(internalInstance);\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n flushPendingEvents(rootID);\n }\n }\n },\n receiveComponent(fn, args) {\n const internalInstance = args[0];\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n parentIDStack.push(id);\n\n const prevChildren = getChildren(internalInstance);\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n const result = fn.apply(this, args);\n\n const nextChildren = getChildren(internalInstance);\n if (!areEqualArrays(prevChildren, nextChildren)) {\n // Push the operation\n recordReorder(internalInstance, id, nextChildren);\n }\n\n parentIDStack.pop();\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n const rootID = internalInstanceToRootIDMap.get(internalInstance);\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n flushPendingEvents(rootID);\n }\n }\n },\n unmountComponent(fn, args) {\n const internalInstance = args[0];\n if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n parentIDStack.push(id);\n try {\n // $FlowFixMe[object-this-reference] found when upgrading Flow\n const result = fn.apply(this, args);\n parentIDStack.pop();\n\n // Push the operation.\n recordUnmount(internalInstance, id);\n\n return result;\n } catch (err) {\n parentIDStack = [];\n throw err;\n } finally {\n if (parentIDStack.length === 0) {\n const rootID = internalInstanceToRootIDMap.get(internalInstance);\n if (rootID === undefined) {\n throw new Error('Expected to find root ID.');\n }\n flushPendingEvents(rootID);\n }\n }\n },\n });\n }\n\n function cleanup() {\n if (oldReconcilerMethods !== null) {\n if (renderer.Component) {\n restoreMany(renderer.Component.Mixin, oldReconcilerMethods);\n } else {\n restoreMany(renderer.Reconciler, oldReconcilerMethods);\n }\n }\n oldReconcilerMethods = null;\n }\n\n function recordMount(\n internalInstance: InternalInstance,\n id: number,\n parentID: number,\n ) {\n const isRoot = parentID === 0;\n\n if (__DEBUG__) {\n console.log(\n '%crecordMount()',\n 'color: green; font-weight: bold;',\n id,\n getData(internalInstance).displayName,\n );\n }\n\n if (isRoot) {\n // TODO Is this right? For all versions?\n const hasOwnerMetadata =\n internalInstance._currentElement != null &&\n internalInstance._currentElement._owner != null;\n\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(ElementTypeRoot);\n pushOperation(0); // StrictMode compliant?\n pushOperation(0); // Profiling flag\n pushOperation(0); // StrictMode supported?\n pushOperation(hasOwnerMetadata ? 1 : 0);\n } else {\n const type = getElementType(internalInstance);\n const {displayName, key} = getData(internalInstance);\n\n const ownerID =\n internalInstance._currentElement != null &&\n internalInstance._currentElement._owner != null\n ? getID(internalInstance._currentElement._owner)\n : 0;\n\n const displayNameStringID = getStringID(displayName);\n const keyStringID = getStringID(key);\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(type);\n pushOperation(parentID);\n pushOperation(ownerID);\n pushOperation(displayNameStringID);\n pushOperation(keyStringID);\n }\n }\n\n function recordReorder(\n internalInstance: InternalInstance,\n id: number,\n nextChildren: Array,\n ) {\n pushOperation(TREE_OPERATION_REORDER_CHILDREN);\n pushOperation(id);\n const nextChildIDs = nextChildren.map(getID);\n pushOperation(nextChildIDs.length);\n for (let i = 0; i < nextChildIDs.length; i++) {\n pushOperation(nextChildIDs[i]);\n }\n }\n\n function recordUnmount(internalInstance: InternalInstance, id: number) {\n pendingUnmountedIDs.push(id);\n idToInternalInstanceMap.delete(id);\n }\n\n function crawlAndRecordInitialMounts(\n id: number,\n parentID: number,\n rootID: number,\n ) {\n if (__DEBUG__) {\n console.group('crawlAndRecordInitialMounts() id:', id);\n }\n\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n internalInstanceToRootIDMap.set(internalInstance, rootID);\n recordMount(internalInstance, id, parentID);\n getChildren(internalInstance).forEach(child =>\n crawlAndRecordInitialMounts(getID(child), id, rootID),\n );\n }\n\n if (__DEBUG__) {\n console.groupEnd();\n }\n }\n\n function flushInitialOperations() {\n // Crawl roots though and register any nodes that mounted before we were injected.\n\n const roots =\n renderer.Mount._instancesByReactRootID ||\n renderer.Mount._instancesByContainerID;\n\n for (const key in roots) {\n const internalInstance = roots[key];\n const id = getID(internalInstance);\n crawlAndRecordInitialMounts(id, 0, id);\n flushPendingEvents(id);\n }\n }\n\n const pendingOperations: Array = [];\n const pendingStringTable: Map = new Map();\n let pendingUnmountedIDs: Array = [];\n let pendingStringTableLength: number = 0;\n let pendingUnmountedRootID: number | null = null;\n\n function flushPendingEvents(rootID: number) {\n if (\n pendingOperations.length === 0 &&\n pendingUnmountedIDs.length === 0 &&\n pendingUnmountedRootID === null\n ) {\n return;\n }\n\n const numUnmountIDs =\n pendingUnmountedIDs.length + (pendingUnmountedRootID === null ? 0 : 1);\n\n const operations = new Array(\n // Identify which renderer this update is coming from.\n 2 + // [rendererID, rootFiberID]\n // How big is the string table?\n 1 + // [stringTableLength]\n // Then goes the actual string table.\n pendingStringTableLength +\n // All unmounts are batched in a single message.\n // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n (numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) +\n // Mount operations\n pendingOperations.length,\n );\n\n // Identify which renderer this update is coming from.\n // This enables roots to be mapped to renderers,\n // Which in turn enables fiber properations, states, and hooks to be inspected.\n let i = 0;\n operations[i++] = rendererID;\n operations[i++] = rootID;\n\n // Now fill in the string table.\n // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n operations[i++] = pendingStringTableLength;\n pendingStringTable.forEach((value, key) => {\n operations[i++] = key.length;\n const encodedKey = utfEncodeString(key);\n for (let j = 0; j < encodedKey.length; j++) {\n operations[i + j] = encodedKey[j];\n }\n i += key.length;\n });\n\n if (numUnmountIDs > 0) {\n // All unmounts except roots are batched in a single message.\n operations[i++] = TREE_OPERATION_REMOVE;\n // The first number is how many unmounted IDs we're gonna send.\n operations[i++] = numUnmountIDs;\n // Fill in the unmounts\n for (let j = 0; j < pendingUnmountedIDs.length; j++) {\n operations[i++] = pendingUnmountedIDs[j];\n }\n // The root ID should always be unmounted last.\n if (pendingUnmountedRootID !== null) {\n operations[i] = pendingUnmountedRootID;\n i++;\n }\n }\n\n // Fill in the rest of the operations.\n for (let j = 0; j < pendingOperations.length; j++) {\n operations[i + j] = pendingOperations[j];\n }\n i += pendingOperations.length;\n\n if (__DEBUG__) {\n printOperationsArray(operations);\n }\n\n // If we've already connected to the frontend, just pass the operations through.\n hook.emit('operations', operations);\n\n pendingOperations.length = 0;\n pendingUnmountedIDs = [];\n pendingUnmountedRootID = null;\n pendingStringTable.clear();\n pendingStringTableLength = 0;\n }\n\n function pushOperation(op: number): void {\n if (__DEV__) {\n if (!Number.isInteger(op)) {\n console.error(\n 'pushOperation() was called but the value is not an integer.',\n op,\n );\n }\n }\n pendingOperations.push(op);\n }\n\n function getStringID(str: string | null): number {\n if (str === null) {\n return 0;\n }\n const existingID = pendingStringTable.get(str);\n if (existingID !== undefined) {\n return existingID;\n }\n const stringID = pendingStringTable.size + 1;\n pendingStringTable.set(str, stringID);\n // The string table total length needs to account\n // both for the string length, and for the array item\n // that contains the length itself. Hence + 1.\n pendingStringTableLength += str.length + 1;\n return stringID;\n }\n\n let currentlyInspectedElementID: number | null = null;\n let currentlyInspectedPaths: Object = {};\n\n // Track the intersection of currently inspected paths,\n // so that we can send their data along if the element is re-rendered.\n function mergeInspectedPaths(path: Array) {\n let current = currentlyInspectedPaths;\n path.forEach(key => {\n if (!current[key]) {\n current[key] = {};\n }\n current = current[key];\n });\n }\n\n function createIsPathAllowed(key: string) {\n // This function helps prevent previously-inspected paths from being dehydrated in updates.\n // This is important to avoid a bad user experience where expanded toggles collapse on update.\n return function isPathAllowed(path: Array): boolean {\n let current = currentlyInspectedPaths[key];\n if (!current) {\n return false;\n }\n for (let i = 0; i < path.length; i++) {\n current = current[path[i]];\n if (!current) {\n return false;\n }\n }\n return true;\n };\n }\n\n // Fast path props lookup for React Native style editor.\n function getInstanceAndStyle(id: number): InstanceAndStyle {\n let instance = null;\n let style = null;\n\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n instance = internalInstance._instance || null;\n\n const element = internalInstance._currentElement;\n if (element != null && element.props != null) {\n style = element.props.style || null;\n }\n }\n\n return {\n instance,\n style,\n };\n }\n\n function updateSelectedElement(id: number): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance == null) {\n console.warn(`Could not find instance with id \"${id}\"`);\n return;\n }\n\n switch (getElementType(internalInstance)) {\n case ElementTypeClass:\n global.$r = internalInstance._instance;\n break;\n case ElementTypeFunction:\n const element = internalInstance._currentElement;\n if (element == null) {\n console.warn(`Could not find element with id \"${id}\"`);\n return;\n }\n\n global.$r = {\n props: element.props,\n type: element.type,\n };\n break;\n default:\n global.$r = null;\n break;\n }\n }\n\n function storeAsGlobal(\n id: number,\n path: Array,\n count: number,\n ): void {\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement !== null) {\n const value = getInObject(inspectedElement, path);\n const key = `$reactTemp${count}`;\n\n window[key] = value;\n\n console.log(key);\n console.log(value);\n }\n }\n\n function getSerializedElementValueByPath(\n id: number,\n path: Array,\n ): ?string {\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement !== null) {\n const valueToCopy = getInObject(inspectedElement, path);\n\n return serializeToString(valueToCopy);\n }\n }\n\n function inspectElement(\n requestID: number,\n id: number,\n path: Array | null,\n forceFullData: boolean,\n ): InspectedElementPayload {\n if (forceFullData || currentlyInspectedElementID !== id) {\n currentlyInspectedElementID = id;\n currentlyInspectedPaths = {};\n }\n\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement === null) {\n return {\n id,\n responseID: requestID,\n type: 'not-found',\n };\n }\n\n if (path !== null) {\n mergeInspectedPaths(path);\n }\n\n // Any time an inspected element has an update,\n // we should update the selected $r value as wel.\n // Do this before dehydration (cleanForBridge).\n updateSelectedElement(id);\n\n inspectedElement.context = cleanForBridge(\n inspectedElement.context,\n createIsPathAllowed('context'),\n );\n inspectedElement.props = cleanForBridge(\n inspectedElement.props,\n createIsPathAllowed('props'),\n );\n inspectedElement.state = cleanForBridge(\n inspectedElement.state,\n createIsPathAllowed('state'),\n );\n\n return {\n id,\n responseID: requestID,\n type: 'full-data',\n value: inspectedElement,\n };\n }\n\n function inspectElementRaw(id: number): InspectedElement | null {\n const internalInstance = idToInternalInstanceMap.get(id);\n\n if (internalInstance == null) {\n return null;\n }\n\n const {displayName, key} = getData(internalInstance);\n const type = getElementType(internalInstance);\n\n let context = null;\n let owners = null;\n let props = null;\n let state = null;\n let source = null;\n\n const element = internalInstance._currentElement;\n if (element !== null) {\n props = element.props;\n source = element._source != null ? element._source : null;\n\n let owner = element._owner;\n if (owner) {\n owners = ([]: Array);\n while (owner != null) {\n owners.push({\n displayName: getData(owner).displayName || 'Unknown',\n id: getID(owner),\n key: element.key,\n type: getElementType(owner),\n });\n if (owner._currentElement) {\n owner = owner._currentElement._owner;\n }\n }\n }\n }\n\n const publicInstance = internalInstance._instance;\n if (publicInstance != null) {\n context = publicInstance.context || null;\n state = publicInstance.state || null;\n }\n\n // Not implemented\n const errors: Array<[string, number]> = [];\n const warnings: Array<[string, number]> = [];\n\n return {\n id,\n\n // Does the current renderer support editable hooks and function props?\n canEditHooks: false,\n canEditFunctionProps: false,\n\n // Does the current renderer support advanced editing interface?\n canEditHooksAndDeletePaths: false,\n canEditHooksAndRenamePaths: false,\n canEditFunctionPropsDeletePaths: false,\n canEditFunctionPropsRenamePaths: false,\n\n // Toggle error boundary did not exist in legacy versions\n canToggleError: false,\n isErrored: false,\n targetErrorBoundaryID: null,\n\n // Suspense did not exist in legacy versions\n canToggleSuspense: false,\n\n // Can view component source location.\n canViewSource: type === ElementTypeClass || type === ElementTypeFunction,\n\n // Only legacy context exists in legacy versions.\n hasLegacyContext: true,\n\n displayName: displayName,\n\n type: type,\n\n key: key != null ? key : null,\n\n // Inspectable properties.\n context,\n hooks: null,\n props,\n state,\n errors,\n warnings,\n\n // List of owners\n owners,\n\n // Location of component in source code.\n source,\n\n rootType: null,\n rendererPackageName: null,\n rendererVersion: null,\n\n plugins: {\n stylex: null,\n },\n };\n }\n\n function logElementToConsole(id: number): void {\n const result = inspectElementRaw(id);\n if (result === null) {\n console.warn(`Could not find element with id \"${id}\"`);\n return;\n }\n\n const supportsGroup = typeof console.groupCollapsed === 'function';\n if (supportsGroup) {\n console.groupCollapsed(\n `[Click to expand] %c<${result.displayName || 'Component'} />`,\n // --dom-tag-name-color is the CSS variable Chrome styles HTML elements with in the console.\n 'color: var(--dom-tag-name-color); font-weight: normal;',\n );\n }\n if (result.props !== null) {\n console.log('Props:', result.props);\n }\n if (result.state !== null) {\n console.log('State:', result.state);\n }\n if (result.context !== null) {\n console.log('Context:', result.context);\n }\n const nativeNode = findNativeNodeForInternalID(id);\n if (nativeNode !== null) {\n console.log('Node:', nativeNode);\n }\n if (window.chrome || /firefox/i.test(navigator.userAgent)) {\n console.log(\n 'Right-click any value to save it as a global variable for further inspection.',\n );\n }\n if (supportsGroup) {\n console.groupEnd();\n }\n }\n\n function prepareViewAttributeSource(\n id: number,\n path: Array,\n ): void {\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement !== null) {\n window.$attribute = getInObject(inspectedElement, path);\n }\n }\n\n function prepareViewElementSource(id: number): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance == null) {\n console.warn(`Could not find instance with id \"${id}\"`);\n return;\n }\n\n const element = internalInstance._currentElement;\n if (element == null) {\n console.warn(`Could not find element with id \"${id}\"`);\n return;\n }\n\n global.$type = element.type;\n }\n\n function deletePath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n path: Array,\n ): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n const publicInstance = internalInstance._instance;\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n deletePathInObject(publicInstance.context, path);\n forceUpdate(publicInstance);\n break;\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n case 'props':\n const element = internalInstance._currentElement;\n internalInstance._currentElement = {\n ...element,\n props: copyWithDelete(element.props, path),\n };\n forceUpdate(publicInstance);\n break;\n case 'state':\n deletePathInObject(publicInstance.state, path);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n }\n\n function renamePath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n oldPath: Array,\n newPath: Array,\n ): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n const publicInstance = internalInstance._instance;\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n renamePathInObject(publicInstance.context, oldPath, newPath);\n forceUpdate(publicInstance);\n break;\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n case 'props':\n const element = internalInstance._currentElement;\n internalInstance._currentElement = {\n ...element,\n props: copyWithRename(element.props, oldPath, newPath),\n };\n forceUpdate(publicInstance);\n break;\n case 'state':\n renamePathInObject(publicInstance.state, oldPath, newPath);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n }\n\n function overrideValueAtPath(\n type: 'context' | 'hooks' | 'props' | 'state',\n id: number,\n hookID: ?number,\n path: Array,\n value: any,\n ): void {\n const internalInstance = idToInternalInstanceMap.get(id);\n if (internalInstance != null) {\n const publicInstance = internalInstance._instance;\n if (publicInstance != null) {\n switch (type) {\n case 'context':\n setInObject(publicInstance.context, path, value);\n forceUpdate(publicInstance);\n break;\n case 'hooks':\n throw new Error('Hooks not supported by this renderer');\n case 'props':\n const element = internalInstance._currentElement;\n internalInstance._currentElement = {\n ...element,\n props: copyWithSet(element.props, path, value),\n };\n forceUpdate(publicInstance);\n break;\n case 'state':\n setInObject(publicInstance.state, path, value);\n forceUpdate(publicInstance);\n break;\n }\n }\n }\n }\n\n // v16+ only features\n const getProfilingData = () => {\n throw new Error('getProfilingData not supported by this renderer');\n };\n const handleCommitFiberRoot = () => {\n throw new Error('handleCommitFiberRoot not supported by this renderer');\n };\n const handleCommitFiberUnmount = () => {\n throw new Error('handleCommitFiberUnmount not supported by this renderer');\n };\n const handlePostCommitFiberRoot = () => {\n throw new Error('handlePostCommitFiberRoot not supported by this renderer');\n };\n const overrideError = () => {\n throw new Error('overrideError not supported by this renderer');\n };\n const overrideSuspense = () => {\n throw new Error('overrideSuspense not supported by this renderer');\n };\n const startProfiling = () => {\n // Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n };\n const stopProfiling = () => {\n // Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n };\n\n function getBestMatchForTrackedPath(): PathMatch | null {\n // Not implemented.\n return null;\n }\n\n function getPathForElement(id: number): Array | null {\n // Not implemented.\n return null;\n }\n\n function updateComponentFilters(componentFilters: Array) {\n // Not implemented.\n }\n\n function setTraceUpdatesEnabled(enabled: boolean) {\n // Not implemented.\n }\n\n function setTrackedPath(path: Array | null) {\n // Not implemented.\n }\n\n function getOwnersList(id: number): Array | null {\n // Not implemented.\n return null;\n }\n\n function clearErrorsAndWarnings() {\n // Not implemented\n }\n\n function clearErrorsForFiberID(id: number) {\n // Not implemented\n }\n\n function clearWarningsForFiberID(id: number) {\n // Not implemented\n }\n\n function patchConsoleForStrictMode() {}\n\n function unpatchConsoleForStrictMode() {}\n\n function hasFiberWithId(id: number): boolean {\n return idToInternalInstanceMap.has(id);\n }\n\n return {\n clearErrorsAndWarnings,\n clearErrorsForFiberID,\n clearWarningsForFiberID,\n cleanup,\n getSerializedElementValueByPath,\n deletePath,\n flushInitialOperations,\n getBestMatchForTrackedPath,\n getDisplayNameForFiberID,\n getFiberForNative,\n getFiberIDForNative: getInternalIDForNative,\n getInstanceAndStyle,\n findNativeNodesForFiberID: (id: number) => {\n const nativeNode = findNativeNodeForInternalID(id);\n return nativeNode == null ? null : [nativeNode];\n },\n getOwnersList,\n getPathForElement,\n getProfilingData,\n handleCommitFiberRoot,\n handleCommitFiberUnmount,\n handlePostCommitFiberRoot,\n hasFiberWithId,\n inspectElement,\n logElementToConsole,\n overrideError,\n overrideSuspense,\n overrideValueAtPath,\n renamePath,\n patchConsoleForStrictMode,\n prepareViewAttributeSource,\n prepareViewElementSource,\n renderer,\n setTraceUpdatesEnabled,\n setTrackedPath,\n startProfiling,\n stopProfiling,\n storeAsGlobal,\n unpatchConsoleForStrictMode,\n updateComponentFilters,\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from './agent';\n\nimport {attach} from './renderer';\nimport {attach as attachLegacy} from './legacy/renderer';\nimport {hasAssignedBackend} from './utils';\n\nimport type {DevToolsHook, ReactRenderer, RendererInterface} from './types';\n\n// this is the backend that is compatible with all older React versions\nfunction isMatchingRender(version: string): boolean {\n return !hasAssignedBackend(version);\n}\n\nexport type InitBackend = typeof initBackend;\n\nexport function initBackend(\n hook: DevToolsHook,\n agent: Agent,\n global: Object,\n): () => void {\n if (hook == null) {\n // DevTools didn't get injected into this page (maybe b'c of the contentType).\n return () => {};\n }\n\n const subs = [\n hook.sub(\n 'renderer-attached',\n ({\n id,\n renderer,\n rendererInterface,\n }: {\n id: number,\n renderer: ReactRenderer,\n rendererInterface: RendererInterface,\n ...\n }) => {\n agent.setRendererInterface(id, rendererInterface);\n\n // Now that the Store and the renderer interface are connected,\n // it's time to flush the pending operation codes to the frontend.\n rendererInterface.flushInitialOperations();\n },\n ),\n\n hook.sub('unsupported-renderer-version', (id: number) => {\n agent.onUnsupportedRenderer(id);\n }),\n\n hook.sub('fastRefreshScheduled', agent.onFastRefreshScheduled),\n hook.sub('operations', agent.onHookOperations),\n hook.sub('traceUpdates', agent.onTraceUpdates),\n\n // TODO Add additional subscriptions required for profiling mode\n ];\n\n const attachRenderer = (id: number, renderer: ReactRenderer) => {\n // only attach if the renderer is compatible with the current version of the backend\n if (!isMatchingRender(renderer.reconcilerVersion || renderer.version)) {\n return;\n }\n let rendererInterface = hook.rendererInterfaces.get(id);\n\n // Inject any not-yet-injected renderers (if we didn't reload-and-profile)\n if (rendererInterface == null) {\n if (typeof renderer.findFiberByHostInstance === 'function') {\n // react-reconciler v16+\n rendererInterface = attach(hook, id, renderer, global);\n } else if (renderer.ComponentTree) {\n // react-dom v15\n rendererInterface = attachLegacy(hook, id, renderer, global);\n } else {\n // Older react-dom or other unsupported renderer version\n }\n\n if (rendererInterface != null) {\n hook.rendererInterfaces.set(id, rendererInterface);\n }\n }\n\n // Notify the DevTools frontend about new renderers.\n // This includes any that were attached early (via __REACT_DEVTOOLS_ATTACH__).\n if (rendererInterface != null) {\n hook.emit('renderer-attached', {\n id,\n renderer,\n rendererInterface,\n });\n } else {\n hook.emit('unsupported-renderer-version', id);\n }\n };\n\n // Connect renderers that have already injected themselves.\n hook.renderers.forEach((renderer, id) => {\n attachRenderer(id, renderer);\n });\n\n // Connect any new renderers that injected themselves.\n subs.push(\n hook.sub(\n 'renderer',\n ({id, renderer}: {id: number, renderer: ReactRenderer, ...}) => {\n attachRenderer(id, renderer);\n },\n ),\n );\n\n hook.emit('react-devtools', agent);\n hook.reactDevtoolsAgent = agent;\n const onAgentShutdown = () => {\n subs.forEach(fn => fn());\n hook.rendererInterfaces.forEach(rendererInterface => {\n rendererInterface.cleanup();\n });\n hook.reactDevtoolsAgent = null;\n };\n agent.addListener('shutdown', onAgentShutdown);\n subs.push(() => {\n agent.removeListener('shutdown', onAgentShutdown);\n });\n\n return () => {\n subs.forEach(fn => fn());\n };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {BoxStyle} from './types';\n\n/**\n * This mirrors react-native/Libraries/Inspector/resolveBoxStyle.js (but without RTL support).\n *\n * Resolve a style property into it's component parts, e.g.\n *\n * resolveBoxStyle('margin', {margin: 5, marginBottom: 10})\n * -> {top: 5, left: 5, right: 5, bottom: 10}\n */\nexport default function resolveBoxStyle(\n prefix: string,\n style: Object,\n): BoxStyle | null {\n let hasParts = false;\n const result = {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n\n const styleForAll = style[prefix];\n if (styleForAll != null) {\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const key of Object.keys(result)) {\n result[key] = styleForAll;\n }\n hasParts = true;\n }\n\n const styleForHorizontal = style[prefix + 'Horizontal'];\n if (styleForHorizontal != null) {\n result.left = styleForHorizontal;\n result.right = styleForHorizontal;\n hasParts = true;\n } else {\n const styleForLeft = style[prefix + 'Left'];\n if (styleForLeft != null) {\n result.left = styleForLeft;\n hasParts = true;\n }\n\n const styleForRight = style[prefix + 'Right'];\n if (styleForRight != null) {\n result.right = styleForRight;\n hasParts = true;\n }\n\n const styleForEnd = style[prefix + 'End'];\n if (styleForEnd != null) {\n // TODO RTL support\n result.right = styleForEnd;\n hasParts = true;\n }\n const styleForStart = style[prefix + 'Start'];\n if (styleForStart != null) {\n // TODO RTL support\n result.left = styleForStart;\n hasParts = true;\n }\n }\n\n const styleForVertical = style[prefix + 'Vertical'];\n if (styleForVertical != null) {\n result.bottom = styleForVertical;\n result.top = styleForVertical;\n hasParts = true;\n } else {\n const styleForBottom = style[prefix + 'Bottom'];\n if (styleForBottom != null) {\n result.bottom = styleForBottom;\n hasParts = true;\n }\n\n const styleForTop = style[prefix + 'Top'];\n if (styleForTop != null) {\n result.top = styleForTop;\n hasParts = true;\n }\n }\n\n return hasParts ? result : null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport resolveBoxStyle from './resolveBoxStyle';\nimport isArray from 'react-devtools-shared/src/isArray';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {RendererID} from '../types';\nimport type {StyleAndLayout} from './types';\n\nexport type ResolveNativeStyle = (stylesheetID: any) => ?Object;\nexport type SetupNativeStyleEditor = typeof setupNativeStyleEditor;\n\nexport default function setupNativeStyleEditor(\n bridge: BackendBridge,\n agent: Agent,\n resolveNativeStyle: ResolveNativeStyle,\n validAttributes?: $ReadOnlyArray | null,\n) {\n bridge.addListener(\n 'NativeStyleEditor_measure',\n ({id, rendererID}: {id: number, rendererID: RendererID}) => {\n measureStyle(agent, bridge, resolveNativeStyle, id, rendererID);\n },\n );\n\n bridge.addListener(\n 'NativeStyleEditor_renameAttribute',\n ({\n id,\n rendererID,\n oldName,\n newName,\n value,\n }: {\n id: number,\n rendererID: RendererID,\n oldName: string,\n newName: string,\n value: string,\n }) => {\n renameStyle(agent, id, rendererID, oldName, newName, value);\n setTimeout(() =>\n measureStyle(agent, bridge, resolveNativeStyle, id, rendererID),\n );\n },\n );\n\n bridge.addListener(\n 'NativeStyleEditor_setValue',\n ({\n id,\n rendererID,\n name,\n value,\n }: {\n id: number,\n rendererID: number,\n name: string,\n value: string,\n }) => {\n setStyle(agent, id, rendererID, name, value);\n setTimeout(() =>\n measureStyle(agent, bridge, resolveNativeStyle, id, rendererID),\n );\n },\n );\n\n bridge.send('isNativeStyleEditorSupported', {\n isSupported: true,\n validAttributes,\n });\n}\n\nconst EMPTY_BOX_STYLE = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n};\n\nconst componentIDToStyleOverrides: Map = new Map();\n\nfunction measureStyle(\n agent: Agent,\n bridge: BackendBridge,\n resolveNativeStyle: ResolveNativeStyle,\n id: number,\n rendererID: RendererID,\n) {\n const data = agent.getInstanceAndStyle({id, rendererID});\n if (!data || !data.style) {\n bridge.send(\n 'NativeStyleEditor_styleAndLayout',\n ({\n id,\n layout: null,\n style: null,\n }: StyleAndLayout),\n );\n return;\n }\n\n const {instance, style} = data;\n\n let resolvedStyle = resolveNativeStyle(style);\n\n // If it's a host component we edited before, amend styles.\n const styleOverrides = componentIDToStyleOverrides.get(id);\n if (styleOverrides != null) {\n resolvedStyle = Object.assign({}, resolvedStyle, styleOverrides);\n }\n\n if (!instance || typeof instance.measure !== 'function') {\n bridge.send(\n 'NativeStyleEditor_styleAndLayout',\n ({\n id,\n layout: null,\n style: resolvedStyle || null,\n }: StyleAndLayout),\n );\n return;\n }\n\n instance.measure((x, y, width, height, left, top) => {\n // RN Android sometimes returns undefined here. Don't send measurements in this case.\n // https://github.com/jhen0409/react-native-debugger/issues/84#issuecomment-304611817\n if (typeof x !== 'number') {\n bridge.send(\n 'NativeStyleEditor_styleAndLayout',\n ({\n id,\n layout: null,\n style: resolvedStyle || null,\n }: StyleAndLayout),\n );\n return;\n }\n const margin =\n (resolvedStyle != null && resolveBoxStyle('margin', resolvedStyle)) ||\n EMPTY_BOX_STYLE;\n const padding =\n (resolvedStyle != null && resolveBoxStyle('padding', resolvedStyle)) ||\n EMPTY_BOX_STYLE;\n bridge.send(\n 'NativeStyleEditor_styleAndLayout',\n ({\n id,\n layout: {\n x,\n y,\n width,\n height,\n left,\n top,\n margin,\n padding,\n },\n style: resolvedStyle || null,\n }: StyleAndLayout),\n );\n });\n}\n\nfunction shallowClone(object: Object): Object {\n const cloned: {[string]: $FlowFixMe} = {};\n for (const n in object) {\n cloned[n] = object[n];\n }\n return cloned;\n}\n\nfunction renameStyle(\n agent: Agent,\n id: number,\n rendererID: RendererID,\n oldName: string,\n newName: string,\n value: string,\n): void {\n const data = agent.getInstanceAndStyle({id, rendererID});\n if (!data || !data.style) {\n return;\n }\n\n const {instance, style} = data;\n\n const newStyle = newName\n ? {[oldName]: undefined, [newName]: value}\n : {[oldName]: undefined};\n\n let customStyle;\n\n // TODO It would be nice if the renderer interface abstracted this away somehow.\n if (instance !== null && typeof instance.setNativeProps === 'function') {\n // In the case of a host component, we need to use setNativeProps().\n // Remember to \"correct\" resolved styles when we read them next time.\n const styleOverrides = componentIDToStyleOverrides.get(id);\n if (!styleOverrides) {\n componentIDToStyleOverrides.set(id, newStyle);\n } else {\n Object.assign(styleOverrides, newStyle);\n }\n // TODO Fabric does not support setNativeProps; chat with Sebastian or Eli\n instance.setNativeProps({style: newStyle});\n } else if (isArray(style)) {\n const lastIndex = style.length - 1;\n if (typeof style[lastIndex] === 'object' && !isArray(style[lastIndex])) {\n customStyle = shallowClone(style[lastIndex]);\n delete customStyle[oldName];\n if (newName) {\n customStyle[newName] = value;\n } else {\n customStyle[oldName] = undefined;\n }\n\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style', lastIndex],\n value: customStyle,\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: style.concat([newStyle]),\n });\n }\n } else if (typeof style === 'object') {\n customStyle = shallowClone(style);\n delete customStyle[oldName];\n if (newName) {\n customStyle[newName] = value;\n } else {\n customStyle[oldName] = undefined;\n }\n\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: customStyle,\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: [style, newStyle],\n });\n }\n\n agent.emit('hideNativeHighlight');\n}\n\nfunction setStyle(\n agent: Agent,\n id: number,\n rendererID: RendererID,\n name: string,\n value: string,\n) {\n const data = agent.getInstanceAndStyle({id, rendererID});\n if (!data || !data.style) {\n return;\n }\n\n const {instance, style} = data;\n const newStyle = {[name]: value};\n\n // TODO It would be nice if the renderer interface abstracted this away somehow.\n if (instance !== null && typeof instance.setNativeProps === 'function') {\n // In the case of a host component, we need to use setNativeProps().\n // Remember to \"correct\" resolved styles when we read them next time.\n const styleOverrides = componentIDToStyleOverrides.get(id);\n if (!styleOverrides) {\n componentIDToStyleOverrides.set(id, newStyle);\n } else {\n Object.assign(styleOverrides, newStyle);\n }\n // TODO Fabric does not support setNativeProps; chat with Sebastian or Eli\n instance.setNativeProps({style: newStyle});\n } else if (isArray(style)) {\n const lastLength = style.length - 1;\n if (typeof style[lastLength] === 'object' && !isArray(style[lastLength])) {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style', lastLength, name],\n value,\n });\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: style.concat([newStyle]),\n });\n }\n } else {\n agent.overrideValueAtPath({\n type: 'props',\n id,\n rendererID,\n path: ['style'],\n value: [style, newStyle],\n });\n }\n\n agent.emit('hideNativeHighlight');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {ConsolePatchSettings} from 'react-devtools-shared/src/backend/types';\nimport {writeConsolePatchSettingsToWindow} from 'react-devtools-shared/src/backend/console';\nimport {castBool, castBrowserTheme} from 'react-devtools-shared/src/utils';\n\n// Note: all keys should be optional in this type, because users can use newer\n// versions of React DevTools with older versions of React Native, and the object\n// provided by React Native may not include all of this type's fields.\nexport type DevToolsSettingsManager = {\n getConsolePatchSettings: ?() => string,\n setConsolePatchSettings: ?(key: string) => void,\n};\n\nexport function initializeUsingCachedSettings(\n devToolsSettingsManager: DevToolsSettingsManager,\n) {\n initializeConsolePatchSettings(devToolsSettingsManager);\n}\n\nfunction initializeConsolePatchSettings(\n devToolsSettingsManager: DevToolsSettingsManager,\n) {\n if (devToolsSettingsManager.getConsolePatchSettings == null) {\n return;\n }\n const consolePatchSettingsString =\n devToolsSettingsManager.getConsolePatchSettings();\n if (consolePatchSettingsString == null) {\n return;\n }\n const parsedConsolePatchSettings = parseConsolePatchSettings(\n consolePatchSettingsString,\n );\n if (parsedConsolePatchSettings == null) {\n return;\n }\n writeConsolePatchSettingsToWindow(parsedConsolePatchSettings);\n}\n\nfunction parseConsolePatchSettings(\n consolePatchSettingsString: string,\n): ?ConsolePatchSettings {\n const parsedValue = JSON.parse(consolePatchSettingsString ?? '{}');\n const {\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n hideConsoleLogsInStrictMode,\n browserTheme,\n } = parsedValue;\n return {\n appendComponentStack: castBool(appendComponentStack) ?? true,\n breakOnConsoleErrors: castBool(breakOnConsoleErrors) ?? false,\n showInlineWarningsAndErrors: castBool(showInlineWarningsAndErrors) ?? true,\n hideConsoleLogsInStrictMode: castBool(hideConsoleLogsInStrictMode) ?? false,\n browserTheme: castBrowserTheme(browserTheme) ?? 'dark',\n };\n}\n\nexport function cacheConsolePatchSettings(\n devToolsSettingsManager: DevToolsSettingsManager,\n value: ConsolePatchSettings,\n): void {\n if (devToolsSettingsManager.setConsolePatchSettings == null) {\n return;\n }\n devToolsSettingsManager.setConsolePatchSettings(JSON.stringify(value));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport Bridge from 'react-devtools-shared/src/bridge';\nimport {installHook} from 'react-devtools-shared/src/hook';\nimport {initBackend} from 'react-devtools-shared/src/backend';\nimport {installConsoleFunctionsToWindow} from 'react-devtools-shared/src/backend/console';\nimport {__DEBUG__} from 'react-devtools-shared/src/constants';\nimport setupNativeStyleEditor from 'react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor';\nimport {getDefaultComponentFilters} from 'react-devtools-shared/src/utils';\nimport {\n initializeUsingCachedSettings,\n cacheConsolePatchSettings,\n type DevToolsSettingsManager,\n} from './cachedSettings';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {ComponentFilter} from 'react-devtools-shared/src/types';\nimport type {DevToolsHook} from 'react-devtools-shared/src/backend/types';\nimport type {ResolveNativeStyle} from 'react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor';\n\ntype ConnectOptions = {\n host?: string,\n nativeStyleEditorValidAttributes?: $ReadOnlyArray,\n port?: number,\n useHttps?: boolean,\n resolveRNStyle?: ResolveNativeStyle,\n retryConnectionDelay?: number,\n isAppActive?: () => boolean,\n websocket?: ?WebSocket,\n devToolsSettingsManager: ?DevToolsSettingsManager,\n ...\n};\n\n// Install a global variable to allow patching console early (during injection).\n// This provides React Native developers with components stacks even if they don't run DevTools.\ninstallConsoleFunctionsToWindow();\ninstallHook(window);\n\nconst hook: ?DevToolsHook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\nlet savedComponentFilters: Array =\n getDefaultComponentFilters();\n\nfunction debug(methodName: string, ...args: Array) {\n if (__DEBUG__) {\n console.log(\n `%c[core/backend] %c${methodName}`,\n 'color: teal; font-weight: bold;',\n 'font-weight: bold;',\n ...args,\n );\n }\n}\n\nexport function connectToDevTools(options: ?ConnectOptions) {\n if (hook == null) {\n // DevTools didn't get injected into this page (maybe b'c of the contentType).\n return;\n }\n const {\n host = 'localhost',\n nativeStyleEditorValidAttributes,\n useHttps = false,\n port = 8097,\n websocket,\n resolveRNStyle = (null: $FlowFixMe),\n retryConnectionDelay = 2000,\n isAppActive = () => true,\n devToolsSettingsManager,\n } = options || {};\n\n const protocol = useHttps ? 'wss' : 'ws';\n let retryTimeoutID: TimeoutID | null = null;\n\n function scheduleRetry() {\n if (retryTimeoutID === null) {\n // Two seconds because RN had issues with quick retries.\n retryTimeoutID = setTimeout(\n () => connectToDevTools(options),\n retryConnectionDelay,\n );\n }\n }\n\n if (devToolsSettingsManager != null) {\n try {\n initializeUsingCachedSettings(devToolsSettingsManager);\n } catch (e) {\n // If we call a method on devToolsSettingsManager that throws, or if\n // is invalid data read out, don't throw and don't interrupt initialization\n console.error(e);\n }\n }\n\n if (!isAppActive()) {\n // If the app is in background, maybe retry later.\n // Don't actually attempt to connect until we're in foreground.\n scheduleRetry();\n return;\n }\n\n let bridge: BackendBridge | null = null;\n\n const messageListeners = [];\n const uri = protocol + '://' + host + ':' + port;\n\n // If existing websocket is passed, use it.\n // This is necessary to support our custom integrations.\n // See D6251744.\n const ws = websocket ? websocket : new window.WebSocket(uri);\n ws.onclose = handleClose;\n ws.onerror = handleFailed;\n ws.onmessage = handleMessage;\n ws.onopen = function () {\n bridge = new Bridge({\n listen(fn) {\n messageListeners.push(fn);\n return () => {\n const index = messageListeners.indexOf(fn);\n if (index >= 0) {\n messageListeners.splice(index, 1);\n }\n };\n },\n send(event: string, payload: any, transferable?: Array) {\n if (ws.readyState === ws.OPEN) {\n if (__DEBUG__) {\n debug('wall.send()', event, payload);\n }\n\n ws.send(JSON.stringify({event, payload}));\n } else {\n if (__DEBUG__) {\n debug(\n 'wall.send()',\n 'Shutting down bridge because of closed WebSocket connection',\n );\n }\n\n if (bridge !== null) {\n bridge.shutdown();\n }\n\n scheduleRetry();\n }\n },\n });\n bridge.addListener(\n 'updateComponentFilters',\n (componentFilters: Array) => {\n // Save filter changes in memory, in case DevTools is reloaded.\n // In that case, the renderer will already be using the updated values.\n // We'll lose these in between backend reloads but that can't be helped.\n savedComponentFilters = componentFilters;\n },\n );\n\n if (devToolsSettingsManager != null && bridge != null) {\n bridge.addListener('updateConsolePatchSettings', consolePatchSettings =>\n cacheConsolePatchSettings(\n devToolsSettingsManager,\n consolePatchSettings,\n ),\n );\n }\n\n // The renderer interface doesn't read saved component filters directly,\n // because they are generally stored in localStorage within the context of the extension.\n // Because of this it relies on the extension to pass filters.\n // In the case of the standalone DevTools being used with a website,\n // saved filters are injected along with the backend script tag so we shouldn't override them here.\n // This injection strategy doesn't work for React Native though.\n // Ideally the backend would save the filters itself, but RN doesn't provide a sync storage solution.\n // So for now we just fall back to using the default filters...\n if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ == null) {\n // $FlowFixMe[incompatible-use] found when upgrading Flow\n bridge.send('overrideComponentFilters', savedComponentFilters);\n }\n\n // TODO (npm-packages) Warn if \"isBackendStorageAPISupported\"\n // $FlowFixMe[incompatible-call] found when upgrading Flow\n const agent = new Agent(bridge);\n agent.addListener('shutdown', () => {\n // If we received 'shutdown' from `agent`, we assume the `bridge` is already shutting down,\n // and that caused the 'shutdown' event on the `agent`, so we don't need to call `bridge.shutdown()` here.\n hook.emit('shutdown');\n });\n\n initBackend(hook, agent, window);\n\n // Setup React Native style editor if the environment supports it.\n if (resolveRNStyle != null || hook.resolveRNStyle != null) {\n setupNativeStyleEditor(\n // $FlowFixMe[incompatible-call] found when upgrading Flow\n bridge,\n agent,\n ((resolveRNStyle || hook.resolveRNStyle: any): ResolveNativeStyle),\n nativeStyleEditorValidAttributes ||\n hook.nativeStyleEditorValidAttributes ||\n null,\n );\n } else {\n // Otherwise listen to detect if the environment later supports it.\n // For example, Flipper does not eagerly inject these values.\n // Instead it relies on the React Native Inspector to lazily inject them.\n let lazyResolveRNStyle;\n let lazyNativeStyleEditorValidAttributes;\n\n const initAfterTick = () => {\n if (bridge !== null) {\n setupNativeStyleEditor(\n bridge,\n agent,\n lazyResolveRNStyle,\n lazyNativeStyleEditorValidAttributes,\n );\n }\n };\n\n if (!hook.hasOwnProperty('resolveRNStyle')) {\n Object.defineProperty(\n hook,\n 'resolveRNStyle',\n ({\n enumerable: false,\n get() {\n return lazyResolveRNStyle;\n },\n set(value: $FlowFixMe) {\n lazyResolveRNStyle = value;\n initAfterTick();\n },\n }: Object),\n );\n }\n if (!hook.hasOwnProperty('nativeStyleEditorValidAttributes')) {\n Object.defineProperty(\n hook,\n 'nativeStyleEditorValidAttributes',\n ({\n enumerable: false,\n get() {\n return lazyNativeStyleEditorValidAttributes;\n },\n set(value: $FlowFixMe) {\n lazyNativeStyleEditorValidAttributes = value;\n initAfterTick();\n },\n }: Object),\n );\n }\n }\n };\n\n function handleClose() {\n if (__DEBUG__) {\n debug('WebSocket.onclose');\n }\n\n if (bridge !== null) {\n bridge.emit('shutdown');\n }\n\n scheduleRetry();\n }\n\n function handleFailed() {\n if (__DEBUG__) {\n debug('WebSocket.onerror');\n }\n\n scheduleRetry();\n }\n\n function handleMessage(event: MessageEvent) {\n let data;\n try {\n if (typeof event.data === 'string') {\n data = JSON.parse(event.data);\n if (__DEBUG__) {\n debug('WebSocket.onmessage', data);\n }\n } else {\n throw Error();\n }\n } catch (e) {\n console.error(\n '[React DevTools] Failed to parse JSON: ' + (event.data: any),\n );\n return;\n }\n messageListeners.forEach(fn => {\n try {\n fn(data);\n } catch (error) {\n // jsc doesn't play so well with tracebacks that go into eval'd code,\n // so the stack trace here will stop at the `eval()` call. Getting the\n // message that caused the error is the best we can do for now.\n console.log('[React DevTools] Error calling listener', data);\n console.log('error:', error);\n throw error;\n }\n });\n }\n}\n"],"names":["h","require","p","q","Object","assign","w","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","x","y","z","a","Map","A","useContext","_currentValue","useState","useReducer","c","useRef","useCacheRefresh","useLayoutEffect","useInsertionEffect","useEffect","useImperativeHandle","useDebugValue","useCallback","useMemo","useMemoCache","b","e","length","f","set","primitive","parse","stackError","B","C","next","use","Error","readContext","push","value","memoizedState","current","updateQueue","memoCache","data","index","Symbol","for","Array","useTransition","useSyncExternalStore","useDeferredValue","useId","D","get","hasOwnProperty","name","E","Proxy","F","G","source","k","r","H","lastIndexOf","I","t","v","u","d","l","m","n","g","functionName","slice","pop","id","isStateEditable","subHooks","hookSource","lineNumber","columnNumber","fileName","J","splice","map","K","cause","L","arguments","ReactCurrentDispatcher","M","forEach","exports","inspectHooks","inspectHooksOfFiber","tag","type","memoizedProps","elementType","defaultProps","_context","has","return","render","ref","process","env","NODE_ENV","module","$$typeof","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","isValidElementType","getModuleId","typeOf","aa","ba","ca","iterator","da","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","props","context","refs","updater","prototype","isReactComponent","setState","forceUpdate","constructor","isPureReactComponent","isArray","N","key","__self","__source","O","call","children","_owner","ea","P","escape","replace","Q","R","toString","S","done","String","keys","join","T","fa","_status","_result","then","default","U","ha","WeakMap","V","s","o","W","X","transition","Y","ReactCurrentCache","ReactCurrentBatchConfig","ReactCurrentOwner","ContextRegistry","Z","Children","apply","count","toArray","only","Component","PureComponent","cache","getCacheForType","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createElement","createFactory","bind","createRef","createServerContext","experimental_useEffectEvent","useEffectEvent","experimental_useOptimistic","useOptimistic","forwardRef","isValidElement","lazy","_payload","_init","memo","compare","startTransition","unstable_Cache","unstable_DebugTracingMode","unstable_Offscreen","unstable_act","unstable_getCacheForType","unstable_getCacheSignal","getCacheSignal","AbortController","abort","signal","unstable_useCacheRefresh","unstable_useMemoCache","version","root","factory","define","amd","ErrorStackParser","StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","ErrorStackParser$$parse","error","stacktrace","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","extractLocation","ErrorStackParser$$extractLocation","urlLike","indexOf","regExp","parts","exec","undefined","ErrorStackParser$$parseV8OrIE","filtered","split","filter","line","sanitizedLine","location","tokens","locationParts","ErrorStackParser$$parseFFOrSafari","functionNameRegex","matches","ErrorStackParser$$parseOpera","message","parseOpera9","parseOpera10","parseOpera11","ErrorStackParser$$parseOpera9","lineRE","lines","result","i","len","ErrorStackParser$$parseOpera10","ErrorStackParser$$parseOpera11","functionCall","shift","argsRaw","args","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","self","Function","objectProto","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","thisArg","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","throttle","isObjectLike","isSymbol","other","valueOf","isBinary","test","LRUCache","util","Yallist","hasSymbol","_nodeLRUCacheForceNoSymbol","makeSymbol","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","naiveLength","Infinity","lc","stale","maxAge","dispose","noDisposeOnSet","reset","defineProperty","mL","trim","enumerable","allowStale","mA","lC","hit","rforEach","fn","thisp","walker","tail","prev","forEachStep","node","isStale","del","head","values","dump","dumpLru","inspect","opts","str","extras","as","didFirst","item","val","Entry","unshift","peek","load","arr","expiresAt","prune","doUse","unshiftNode","diff","delete","removeNode","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","nextTick","Item","array","title","browser","argv","versions","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","npm_package_name","npm_lifecycle_script","TEST_PSEUDOMAP","PseudoMap","clear","kv","_data","find","res","_index","size","create","configurable","writable","entries","same","_isNumber","isNaN","parseFloat","isFinite","_capitalize","charAt","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","arrayProps","obj","getArgs","setArgs","getEvalOrigin","evalOrigin","setEvalOrigin","getFileName","getLineNumber","getColumnNumber","getFunctionName","getIsEval","fromString","StackFrame$$fromString","argsStartIndex","argsEndIndex","locationString","Boolean","j","Number","inherits","ctor","superCtor","super_","TempCtor","isBuffer","arg","copy","fill","readUInt8","getOwnPropertyDescriptors","descriptors","getOwnPropertyDescriptor","formatRegExp","format","isString","objects","JSON","stringify","_","isNull","deprecate","msg","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","debugs","debugEnviron","debuglog","isUndefined","NODE_DEBUG","RegExp","pid","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","hash","idx","recurseTimes","isFunction","ret","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","output","formatArray","formatProperty","reduceToSingleString","simple","isNumber","desc","substr","numLinesEst","reduce","cur","ar","isNullOrUndefined","re","isPrimitive","pad","months","timestamp","getHours","getMinutes","getSeconds","getDate","getMonth","log","origin","add","prop","kCustomPromisifiedSymbol","promisify","original","promiseResolve","promiseReject","promise","Promise","resolve","reject","err","setPrototypeOf","getPrototypeOf","defineProperties","custom","callbackifyOnRejected","reason","cb","newReason","callbackify","callbackified","maybeCb","rej","Node","list","pushNode","forEachReverse","getReverse","mapReverse","initial","acc","reduceReverse","toArrayReverse","from","to","sliceReverse","reverse","EventEmitter","event","listener","listenersMap","didThrow","caughtError","clonedListeners","CHROME_WEBSTORE_EXTENSION_ID","INTERNAL_EXTENSION_ID","LOCAL_EXTENSION_ID","__DEBUG__","__PERFORMANCE_PROFILE__","TREE_OPERATION_ADD","TREE_OPERATION_REMOVE","TREE_OPERATION_REORDER_CHILDREN","TREE_OPERATION_UPDATE_TREE_BASE_DURATION","TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS","TREE_OPERATION_REMOVE_ROOT","TREE_OPERATION_SET_SUBTREE_MODE","PROFILING_FLAG_BASIC_SUPPORT","PROFILING_FLAG_TIMELINE_SUPPORT","LOCAL_STORAGE_DEFAULT_TAB_KEY","LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY","SESSION_STORAGE_LAST_SELECTION_KEY","LOCAL_STORAGE_OPEN_IN_EDITOR_URL","LOCAL_STORAGE_PARSE_HOOK_NAMES_KEY","SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY","SESSION_STORAGE_RELOAD_AND_PROFILE_KEY","LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS","LOCAL_STORAGE_BROWSER_THEME","LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY","LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY","LOCAL_STORAGE_TRACE_UPDATES_ENABLED_KEY","LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE","PROFILER_EXPORT_VERSION","localStorageGetItem","localStorage","getItem","localStorageRemoveItem","removeItem","localStorageSetItem","setItem","sessionStorageGetItem","sessionStorage","sessionStorageRemoveItem","sessionStorageSetItem","simpleIsEqual","resultFn","isEqual","lastResult","calledOnce","isNewArgEqualToLast","newArg","_len","newArgs","_key","every","getOwnerWindow","ownerDocument","defaultView","getOwnerIframe","nodeWindow","frameElement","getBoundingClientRectWithBorderOffset","dimensions","getElementDimensions","mergeRectOffsets","getBoundingClientRect","top","borderTop","left","borderLeft","bottom","borderBottom","right","borderRight","width","height","rects","previousRect","rect","getNestedBoundingClientRect","boundaryWindow","ownerIframe","currentIframe","onlyOneMore","domElement","calculatedStyle","window","getComputedStyle","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","marginLeft","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","OverlayRect","doc","container","border","padding","content","borderColor","overlayStyles","backgroundColor","background","margin","pointerEvents","position","zIndex","appendChild","parentNode","removeChild","box","dims","boxWrap","OverlayTip","tip","display","flexFlow","borderRadius","fontFamily","fontWeight","fontSize","whiteSpace","nameSpan","color","dimSpan","textContent","round","bounds","tipRect","tipPos","findTipPos","Overlay","agent","currentWindow","__REACT_DEVTOOLS_TARGET_WINDOW__","tipBoundsWindow","document","body","remove","nodes","elements","nodeType","ELEMENT_NODE","outerBox","POSITIVE_INFINITY","NEGATIVE_INFINITY","element","update","nodeName","toLowerCase","rendererInterface","getBestMatchingRendererInterface","getFiberIDForNative","ownerName","getDisplayNameForFiberID","updateText","tipBounds","documentElement","updatePosition","scrollY","scrollX","innerHeight","innerWidth","tipSize","tipHeight","tipWidth","what","borderStyle","SHOW_DURATION","timeoutID","overlay","hideOverlay","showOverlay","componentName","hideAfterTimeout","memoize","Agent","iframesListeningTo","Set","setupHighlighter","bridge","clearNativeElementHighlight","highlightNativeElement","stopInspectingNative","startInspectingNative","registerListenersOnWindow","addEventListener","onClick","onMouseEvent","onPointerDown","onPointerMove","onPointerUp","removeListenersOnWindow","frame","contentWindow","removeEventListener","displayName","openNativeElementsPanel","rendererID","scrollIntoView","renderer","rendererInterfaces","warn","hasFiberWithId","findNativeNodesForFiberID","block","inline","__REACT_DEVTOOLS_GLOBAL_HOOK__","$0","send","preventDefault","stopPropagation","selectFiberForNode","getEventTarget","lastHoveredNode","target","tagName","iframe","getIDForNode","composed","composedPath","OUTLINE_COLOR","COLORS","canvas","draw","nodeToData","nodesToDraw","iterateNodes","initialize","canvasFlow","getContext","clearRect","drawBorder","execute","colorIndex","lineWidth","strokeStyle","strokeRect","setLineDash","destroy","cssText","insertBefore","firstChild","destroyCanvas","DISPLAY_DURATION","MAX_DISPLAY_DURATION","REMEASUREMENT_AFTER_DURATION","getCurrentTime","performance","drawAnimationFrameID","isEnabled","redrawTimeoutID","injectedAgent","traceUpdates","toggleEnabled","cancelAnimationFrame","lastMeasuredAt","measureNode","expirationTime","requestAnimationFrame","prepareToDraw","earliestExpiration","MAX_VALUE","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_SERVER_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_SCOPE_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_OFFSCREEN_TYPE","REACT_LEGACY_HIDDEN_TYPE","REACT_CACHE_TYPE","REACT_TRACING_MARKER_TYPE","REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED","REACT_MEMO_CACHE_SENTINEL","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ElementTypeClass","ElementTypeContext","ElementTypeFunction","ElementTypeForwardRef","ElementTypeHostComponent","ElementTypeMemo","ElementTypeOtherOrUnknown","ElementTypeProfiler","ElementTypeRoot","ElementTypeSuspense","ElementTypeSuspenseList","ElementTypeTracingMarker","ComponentFilterElementType","ComponentFilterDisplayName","ComponentFilterLocation","ComponentFilterHOC","LRU","TracingMarker","meta","cachedDisplayNames","encodedStringCache","alphaSortKeys","getAllEnumerableKeys","currentKeys","getOwnPropertySymbols","getWrappedDisplayName","outerType","innerType","wrapperName","fallbackName","getDisplayName","nameFromCache","uidCounter","getUID","utfDecodeString","string","char","fromCodePoint","surrogatePairToCodePoint","charCode1","charCode2","utfEncodeString","cached","encoded","charCode","charCodeAt","printOperationsArray","operations","rootID","logs","stringTable","stringTableSize","stringTableEnd","nextLength","nextString","operation","parentID","displayNameStringID","removeLength","removeIndex","mode","numChildren","numErrors","numWarnings","getDefaultComponentFilters","getSavedComponentFilters","raw","setSavedComponentFilters","componentFilters","parseBool","castBool","castBrowserTheme","getAppendComponentStack","getBreakOnConsoleErrors","getHideConsoleLogsInStrictMode","getShowInlineWarningsAndErrors","getDefaultOpenInEditorURL","EDITOR_URL","getOpenInEditorURL","separateDisplayNameAndHOCs","hocDisplayNames","shallowDiffers","attribute","getInObject","object","path","reduced","attr","deletePathInObject","last","parent","renamePathInObject","oldPath","newPath","lastOld","lastNew","setInObject","getDataType","HTMLElement","ArrayBuffer","isView","toStringValue","isPlainObject","getDisplayNameForReactElement","MAX_PREVIEW_STRING_LENGTH","truncateForDisplay","formatDataForPreview","showFormattedValue","preview_long","preview_short","byteLength","buffer","formatted","shortName","entryOrEntries","toStringTag","sort","objectPrototype","objectParentPrototype","inspectable","inspected","readonly","unserializable","LEVEL_THRESHOLD","createDehydrated","cleaned","dehydrated","dehydrate","isPathAllowed","level","isPathAllowedCheck","unserializableValue","keyAsString","fillInPath","unserializablePath","isMatch","upgradeUnserializable","hydrate","NaN","replaced","replacement","destination","isArrayImpl","compareVersions","FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER","hasAssignedBackend","gte","cleanForBridge","cleanedPaths","unserializablePaths","cleanedData","copyWithDelete","updated","copyWithRename","oldKey","newKey","copyWithSet","getEffectDurations","effectDuration","passiveEffectDuration","hostRoot","stateNode","serializeToString","formatWithStyles","inputArgs","REGEXP","firstArg","formatStr","elem","formatting","isInteger","maybeMessage","escaped","ptn","flag","isSynchronousXHRSupported","featurePolicy","allowsFeature","gt","CONCURRENT_MODE_NUMBER","CONCURRENT_MODE_SYMBOL_STRING","CONTEXT_NUMBER","CONTEXT_SYMBOL_STRING","SERVER_CONTEXT_SYMBOL_STRING","DEPRECATED_ASYNC_MODE_SYMBOL_STRING","ELEMENT_NUMBER","ELEMENT_SYMBOL_STRING","DEBUG_TRACING_MODE_NUMBER","DEBUG_TRACING_MODE_SYMBOL_STRING","FORWARD_REF_NUMBER","FORWARD_REF_SYMBOL_STRING","FRAGMENT_NUMBER","FRAGMENT_SYMBOL_STRING","LAZY_NUMBER","LAZY_SYMBOL_STRING","MEMO_NUMBER","MEMO_SYMBOL_STRING","PORTAL_NUMBER","PORTAL_SYMBOL_STRING","PROFILER_NUMBER","PROFILER_SYMBOL_STRING","PROVIDER_NUMBER","PROVIDER_SYMBOL_STRING","SCOPE_NUMBER","SCOPE_SYMBOL_STRING","STRICT_MODE_NUMBER","STRICT_MODE_SYMBOL_STRING","SUSPENSE_NUMBER","SUSPENSE_SYMBOL_STRING","SUSPENSE_LIST_NUMBER","SUSPENSE_LIST_SYMBOL_STRING","SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED_SYMBOL_STRING","consoleManagedByDevToolsDuringStrictMode","enableLogger","enableStyleXFeatures","isInternalFacebookBuild","is","objectIs","cachedStyleNameToValueMap","getStyleXData","sources","resolvedStyles","crawlData","entry","crawlObjectProperties","fromEntries","propertyValue","getPropertyValueForStyleName","nestedStyle","styleName","styleSheetIndex","styleSheets","styleSheet","rules","cssRules","_e","ruleIndex","CSSStyleRule","rule","selectorText","startsWith","property","getPropertyValue","CHANGE_LOG_URL","UNSUPPORTED_VERSION_URL","REACT_DEVTOOLS_WORKPLACE_URL","THEME_STYLES","light","dark","compact","comfortable","COMFORTABLE_LINE_HEIGHT","COMPACT_LINE_HEIGHT","REACT_TOTAL_NUM_LANES","SCHEDULING_PROFILER_VERSION","SNAPSHOT_MAX_HEIGHT","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","__reactDisabledLog","disableLogs","info","group","groupCollapsed","groupEnd","reenableLogs","prefix","describeBuiltInComponentFrame","ownerFn","reentry","componentFrameCache","__DEV__","PossiblyWeakMap","describeNativeComponentFrame","construct","currentDispatcherRef","control","previousPrepareStackTrace","prepareStackTrace","previousDispatcher","Fake","Reflect","sample","sampleLines","controlLines","syntheticFrame","describeClassComponentFrame","describeFunctionComponentFrame","shouldConstruct","describeUnknownElementTypeFrameInDEV","lazyComponent","payload","init","describeFiber","workTagMap","workInProgress","HostComponent","LazyComponent","SuspenseComponent","SuspenseListComponent","FunctionComponent","IndeterminateComponent","SimpleMemoComponent","ClassComponent","owner","_debugOwner","getStackByFiberInDevAndProd","TIME_OFFSET","performanceTarget","supportsUserTiming","mark","clearMarks","supportsUserTimingV3","CHECK_V3_MARK","markOptions","setPerformanceMock_ONLY_FOR_TESTING","performanceMock","createProfilingHooks","getDisplayNameForFiber","getIsProfiling","getLaneLabelMap","reactVersion","currentBatchUID","currentReactComponentMeasure","currentReactMeasuresStack","currentTimelineData","currentFiberStacks","isProfiling","nextRenderShouldStartNewBatch","getRelativeTime","currentTime","startTime","getInternalModuleRanges","ranges","getTimelineData","laneToLanesArray","lanes","lanesArray","lane","laneToLabelMap","markMetadata","markAndClear","range","startStackFrame","stopStackFrame","labels","markName","recordReactMeasureStarted","reactMeasure","batchUID","duration","batchUIDToMeasuresMap","laneToReactMeasureMap","reactMeasures","recordReactMeasureCompleted","markCommitStarted","markCommitStopped","markComponentRenderStarted","fiber","warning","markComponentRenderStopped","componentMeasures","markComponentLayoutEffectMountStarted","markComponentLayoutEffectMountStopped","markComponentLayoutEffectUnmountStarted","markComponentLayoutEffectUnmountStopped","markComponentPassiveEffectMountStarted","markComponentPassiveEffectMountStopped","markComponentPassiveEffectUnmountStarted","markComponentPassiveEffectUnmountStopped","markComponentErrored","thrownValue","phase","alternate","thrownErrors","wakeableIDs","wakeableID","getWakeableID","wakeable","markComponentSuspended","eventType","suspenseEvent","promiseName","resolution","suspenseEvents","markLayoutEffectsStarted","markLayoutEffectsStopped","markPassiveEffectsStarted","markPassiveEffectsStopped","markRenderStarted","markRenderYielded","markRenderStopped","markRenderScheduled","schedulingEvents","markForceUpdateScheduled","getParentFibers","parents","markStateUpdateScheduled","toggleProfilingStatus","internalModuleSourceToRanges","flamechart","nativeEvents","networkMeasures","otherUserTimingMarks","snapshots","snapshotHeight","fiberStack","componentStack","profilingHooks","patchConsoleUsingWindowValues","registerRenderer","registerRendererWithConsole","patchForStrictMode","patchConsoleForStrictMode","unpatchForStrictMode","unpatchConsoleForStrictMode","getFiberFlags","flags","effectTag","getInternalReactConstants","ReactPriorityLevels","ImmediatePriority","UserBlockingPriority","NormalPriority","LowPriority","IdlePriority","NoPriority","StrictModeBits","ReactTypeOfWork","CacheComponent","CoroutineComponent","CoroutineHandlerPhase","DehydratedSuspenseComponent","HostPortal","HostRoot","HostHoistable","HostSingleton","HostText","IncompleteClassComponent","LegacyHiddenComponent","MemoComponent","Mode","OffscreenComponent","ScopeComponent","TracingMarkerComponent","YieldComponent","getTypeSymbol","symbolOrNumber","resolveFiberType","typeSymbol","resolvedType","resolvedContext","fiberRoot","_debugRootType","fiberToIDMap","idToArbitraryFiberMap","attach","hook","reconcilerVersion","injectProfilingHooks","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","scheduleRefresh","setErrorHandler","setSuspenseHandler","scheduleUpdate","supportsTogglingError","supportsTogglingSuspense","response","fibersWithChangedErrorOrWarningCounts","pendingFiberToErrorsMap","pendingFiberToWarningsMap","fiberIDToErrorsMap","fiberIDToWarningsMap","clearErrorsAndWarnings","updateMostRecentlyInspectedElementIfNecessary","flushPendingEvents","clearMessageCountHelper","fiberID","pendingFiberToMessageCountMap","fiberIDToMessageCountMap","clearErrorsForFiberID","clearWarningsForFiberID","mostRecentlyInspectedElement","hasElementUpdatedSinceLastInspected","onErrorOrWarning","maybeID","getFiberIDUnsafe","forceErrorForFiberIDs","debug","fiberMap","messageMap","flushPendingErrorsAndWarningsAfterDelay","parentFiber","extraString","parentDisplayName","maybeParentID","hideElementsWithDisplayNames","hideElementsWithPaths","hideElementsWithTypes","traceUpdatesEnabled","traceUpdatesForNodes","applyComponentFilters","componentFilter","isValid","__REACT_DEVTOOLS_COMPONENT_FILTERS__","updateComponentFilters","getFiberRoots","currentRootID","getOrGenerateFiberID","pushOperation","rootDisplayNameCounter","setRootPseudoKey","mountFiberRecursively","reevaluateErrorsAndWarnings","shouldFilterFiber","_debugSource","getElementTypeForFiber","displayNameRegExp","pathRegExp","idToTreeBaseDurationMap","idToRootMap","didGenerateID","refinedID","getFiberIDThrows","untrackFiberID","untrackFibersSet","untrackFibersTimeoutID","untrackFibers","shouldErrorFiberAlwaysNull","getChangeDescription","prevFiber","nextFiber","didHooksChange","isFirstMount","state","getContextChangedKeys","getChangedKeys","indices","getChangedHooksIndices","hooks","updateContextsForFiber","idToContextsMap","contexts","getContextsForFiber","NO_CONTEXT","legacyContext","modernContext","instance","contextType","dependencies","firstContext","crawlToInitializeContextsMap","child","sibling","prevContexts","nextContexts","prevLegacyContext","prevModernContext","nextLegacyContext","nextModernContext","prevContext","nextContext","memoizedValue","isHookThatCanScheduleUpdate","hookObject","boundHasOwnProperty","isStateOrReducer","dispatch","isSyncExternalStore","getSnapshot","didStatefulHookChange","prevMemoizedState","nextMemoizedState","changedKeys","didFiberRender","PerformedWork","pendingOperations","pendingRealUnmountedIDs","pendingSimulatedUnmountedIDs","pendingOperationsQueue","pendingStringTable","pendingStringTableLength","pendingUnmountedRootID","op","shouldBailoutWithPendingOperations","currentCommitProfilingMetadata","durations","flushOrQueueOperations","flushPendingErrorsAndWarningsAfterDelayTimeoutID","clearPendingErrorsAndWarningsAfterDelay","recordPendingErrorsAndWarnings","countMap","mergeMapsAndGetCountHelper","newCount","messageCountMap","pendingMessageCountMap","refinedMessageCountMap","pendingCount","previousCount","errorCount","warningCount","numUnmountIDs","stringKey","encodedString","getStringID","existingEntry","recordMount","isRoot","hasOwnerMetadata","isProfilingSupported","profilingFlags","displayNamesByRootID","getDisplayNameForRoot","ownerID","keyString","keyStringID","recordProfilingDurations","recordUnmount","isSimulated","trackedPathMatchFiber","setTrackedPath","unsafeID","_debugNeedsRemount","traverseSiblings","traceNearestHostComponentUpdate","mightSiblingsBeOnTrackedPath","updateTrackedPathStateBeforeMount","shouldIncludeInTree","isTimedOut","primaryChildFragment","fallbackChildFragment","fallbackChild","primaryChild","areSuspenseChildrenConditionallyWrapped","updateTrackedPathStateAfterMount","unmountFiberChildrenRecursively","isTimedOutSuspense","actualDuration","treeBaseDuration","convertedTreeBaseDuration","floor","selfDuration","metadata","maxActualDuration","recordChangeDescriptions","changeDescription","changeDescriptions","recordResetChildren","childSet","nextChildren","findReorderedChildrenRecursively","updateFiberRecursively","shouldResetChildren","prevDidTimeout","nextDidTimeOut","nextFiberChild","nextFallbackChildSet","prevFiberChild","prevFallbackChildSet","nextPrimaryChildSet","nextChild","prevChildAtSameIndex","prevChild","hostFibers","findAllCurrentHostFibers","hostFiber","nextChildSet","cleanup","rootSupportsProfiling","memoizedInteractions","flushInitialOperations","localPendingOperationsQueue","trackedPath","mightBeOnTrackedPath","commitTime","profilingStartTime","priorityLevel","updaters","getUpdatersList","memoizedUpdaters","fiberToSerializedElement","handleCommitFiberUnmount","handlePostCommitFiberRoot","handleCommitFiberRoot","formatPriorityLevel","wasMounted","isDehydrated","removeRootPseudoKey","commitProfilingMetadata","rootToCommitProfilingMetadataMap","fibers","findCurrentFiberUsingSlowPathById","getFiberForNative","hostInstance","findFiberByHostInstance","findNearestUnfilteredAncestor","assertIsMounted","getNearestMountedFiber","nearestMounted","nextNode","Placement","Hydrating","parentA","parentB","nextParent","didFindChild","prepareViewAttributeSource","isMostRecentlyInspectedElement","$attribute","prepareViewElementSource","$type","getOwnersList","owners","getInstanceAndStyle","isErrorBoundary","getDerivedStateFromError","componentDidCatch","getNearestErrorBoundaryID","inspectElementRaw","usesHooks","showState","canViewSource","shouldHideContext","contextTypes","consumerResolvedContext","currentType","currentTypeSymbol","providerResolvedContext","hasLegacyContext","originalConsoleMethods","method","rootType","errors","warnings","isErrored","targetErrorBoundaryID","DidCapture","plugins","stylex","xstyle","canEditHooks","canEditFunctionProps","canEditHooksAndDeletePaths","canEditHooksAndRenamePaths","canEditFunctionPropsDeletePaths","canEditFunctionPropsRenamePaths","canToggleError","canToggleSuspense","forceFallbackForSuspenseIDs","rendererPackageName","rendererVersion","currentlyInspectedPaths","isMostRecentlyInspectedElementCurrent","mergeInspectedPaths","createIsPathAllowed","secondaryCategory","updateSelectedElement","inspectedElement","$r","storeAsGlobal","getSerializedElementValueByPath","valueToCopy","inspectElement","requestID","forceFullData","responseID","errorType","cleanedInspectedElement","logElementToConsole","supportsGroup","nativeNodes","chrome","navigator","userAgent","deletePath","hookID","pendingProps","renamePath","overrideValueAtPath","initialTreeBaseDurationsMap","initialIDToRootMap","getProfilingData","dataForRoots","commitData","initialTreeBaseDurations","commitProfilingData","commitIndex","fiberActualDurations","fiberSelfDurations","timelineData","rest","batchUIDToMeasuresKeyValueArray","laneToLabelKeyValueArray","laneToReactMeasureKeyValueArray","startProfiling","shouldRecordChangeDescriptions","stopProfiling","shouldErrorFiberAccordingToMap","status","overrideError","forceError","shouldSuspendFiberAlwaysFalse","shouldSuspendFiberAccordingToSet","overrideSuspense","forceFallback","trackedPathMatchDepth","returnFiber","returnAlternate","actualFrame","getPathFrame","expectedFrame","rootPseudoKeys","counter","pseudoKey","preferredDisplayName","fallbackDisplayName","getPathForElement","keyPath","getBestMatchForTrackedPath","isFullMatch","setTraceUpdatesEnabled","OVERRIDE_CONSOLE_METHODS","DIMMED_NODE_CONSOLE_COLOR","PREFIX_REGEX","ROW_COLUMN_NUMBER_REGEX","isStringComponentStack","text","STYLE_DIRECTIVE_REGEX","isStrictModeOverride","getConsoleColor","consoleSettingsRef","browserTheme","LIGHT_MODE_DIMMED_WARNING_COLOR","DARK_MODE_DIMMED_WARNING_COLOR","LIGHT_MODE_DIMMED_ERROR_COLOR","DARK_MODE_DIMMED_ERROR_COLOR","LIGHT_MODE_DIMMED_LOG_COLOR","DARK_MODE_DIMMED_LOG_COLOR","injectedRenderers","targetConsole","targetConsoleMethods","unpatchFn","isNode","dangerous_setTargetConsoleForTesting","targetConsoleForTesting","getCurrentFiber","appendComponentStack","breakOnConsoleErrors","showInlineWarningsAndErrors","hideConsoleLogsInStrictMode","patch","originalMethod","__REACT_DEVTOOLS_ORIGINAL_METHOD__","overrideMethod","shouldAppendWarningStack","lastArg","alreadyHasComponentStack","shouldShowInlineWarningsAndErrors","__REACT_DEVTOOLS_OVERRIDE_METHOD__","unpatch","unpatchForStrictModeFn","overrideConsoleMethods","__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__","__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__","__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__","__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__","__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__","__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__","__REACT_DEVTOOLS_BROWSER_THEME__","writeConsolePatchSettingsToWindow","settings","installConsoleFunctionsToWindow","__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__","BATCH_DURATION","BRIDGE_PROTOCOL","minNpmVersion","maxNpmVersion","currentBridgeProtocol","Bridge","wall","_timeoutID","_messageQueue","_wall","_flush","wasForwarded","_wallUnlisten","listen","_isShutdown","wallUnlisten","setupTraceUpdates","patchConsole","methodName","_rendererInterfaces","_bridge","DEVTOOLS_VERSION","_isProfiling","_persistedSelectionMatch","_persistedSelection","_throttledPersistSelection","_traceUpdatesEnabled","selectNode","_recordChangeDescriptions","selected","prevMatch","nextMatch","prevMatchID","nextMatchID","persistedSelectionString","copyElementPath","getBackendVersion","getBridgeProtocol","getProfilingStatus","reloadAndProfile","syncSelectionFromNativeElementsPanel","shutdown","updateConsolePatchSettings","viewAttributeSource","viewElementSource","overrideContext","overrideState","isBackendStorageAPISupported","bestMatch","selection","installHook","detectReactBuildType","bundleType","Mount","_renderNewRootComponent","renderRootCode","checkDCE","code","hasDetectedBadDCE","patchConsoleForInitialRenderInStrictMode","unpatchConsoleForInitialRenderInStrictMode","inject","renderers","reactBuildType","__REACT_DEVTOOLS_ATTACH__","sub","roots","fiberRoots","onCommitFiberUnmount","onCommitFiberRoot","mountedRoots","isKnownRoot","isUnmounting","onPostCommitFiberRoot","setStrictMode","openModuleRangesStack","moduleRanges","getTopStackFrameString","frames","registerInternalModuleStart","registerInternalModuleStop","backends","supportsFiber","__TEST__","decorate","old","decorateMany","fns","olds","restoreMany","getData","internalInstance","_currentElement","getElementType","publicInstance","getPublicInstance","getChildren","_renderedComponent","_renderedChildren","renderedChildren","idToInternalInstanceMap","internalInstanceToIDMap","internalInstanceToRootIDMap","getInternalIDForNative","findNativeNodeForInternalID","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","getID","getNode","areEqualArrays","parentIDStack","oldReconcilerMethods","Reconciler","mountComponent","hostContainerInfo","_topLevelWrapper","performUpdateIfNecessary","prevChildren","recordReorder","receiveComponent","unmountComponent","Mixin","nextChildIDs","pendingUnmountedIDs","crawlAndRecordInitialMounts","_instancesByReactRootID","_instancesByContainerID","encodedKey","existingID","stringID","currentlyInspectedElementID","_instance","_source","nativeNode","enabled","attachLegacy","isMatchingRender","initBackend","subs","setRendererInterface","onUnsupportedRenderer","onFastRefreshScheduled","onHookOperations","onTraceUpdates","attachRenderer","reactDevtoolsAgent","onAgentShutdown","resolveBoxStyle","hasParts","styleForAll","styleForHorizontal","styleForLeft","styleForRight","styleForEnd","styleForStart","styleForVertical","styleForBottom","styleForTop","setupNativeStyleEditor","resolveNativeStyle","validAttributes","measureStyle","oldName","newName","renameStyle","setStyle","isSupported","EMPTY_BOX_STYLE","componentIDToStyleOverrides","layout","resolvedStyle","styleOverrides","measure","shallowClone","cloned","newStyle","customStyle","setNativeProps","lastIndex","lastLength","initializeUsingCachedSettings","devToolsSettingsManager","initializeConsolePatchSettings","getConsolePatchSettings","consolePatchSettingsString","parsedConsolePatchSettings","parseConsolePatchSettings","parsedValue","cacheConsolePatchSettings","setConsolePatchSettings","savedComponentFilters","connectToDevTools","host","nativeStyleEditorValidAttributes","useHttps","port","websocket","resolveRNStyle","retryConnectionDelay","isAppActive","protocol","retryTimeoutID","scheduleRetry","messageListeners","uri","ws","WebSocket","onclose","handleClose","onerror","handleFailed","onmessage","handleMessage","onopen","transferable","readyState","OPEN","consolePatchSettings","lazyResolveRNStyle","lazyNativeStyleEditorValidAttributes","initAfterTick"],"sourceRoot":""}