amis-rpc-design/node_modules/react-devtools-core/dist/backend.js.map
2023-10-07 19:42:30 +08:00

1 line
997 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"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;e<b.length;e++){var f=b[e];a.set(f.primitive,h.parse(f.stackError))}y=a}return y}var B=null;function C(){var a=B;null!==a&&(B=a.next);return a}\nvar A={use:function(){throw Error(\"Support for `use` not yet implemented in react-debug-tools.\");},readContext:function(a){return a._currentValue},useCacheRefresh:function(){var a=C();x.push({primitive:\"CacheRefresh\",stackError:Error(),value:null!==a?a.memoizedState:function(){}});return function(){}},useCallback:function(a){var b=C();x.push({primitive:\"Callback\",stackError:Error(),value:null!==b?b.memoizedState[0]:a});return a},useContext:function(a){x.push({primitive:\"Context\",stackError:Error(),\nvalue:a._currentValue});return a._currentValue},useEffect:function(a){C();x.push({primitive:\"Effect\",stackError:Error(),value:a})},useImperativeHandle:function(a){C();var b=void 0;null!==a&&\"object\"===typeof a&&(b=a.current);x.push({primitive:\"ImperativeHandle\",stackError:Error(),value:b})},useDebugValue:function(a,b){x.push({primitive:\"DebugValue\",stackError:Error(),value:\"function\"===typeof b?b(a):a})},useLayoutEffect:function(a){C();x.push({primitive:\"LayoutEffect\",stackError:Error(),value:a})},\nuseInsertionEffect:function(a){C();x.push({primitive:\"InsertionEffect\",stackError:Error(),value:a})},useMemo:function(a){var b=C();a=null!==b?b.memoizedState[0]:a();x.push({primitive:\"Memo\",stackError:Error(),value:a});return a},useMemoCache:function(a){var b=C();b=null!==b&&null!==b.updateQueue&&null!=b.updateQueue.memoCache?b.updateQueue.memoCache:{data:[],index:0};b=b.data[b.index];if(void 0===b){var e=Symbol.for(\"react.memo_cache_sentinel\");b=Array(a);for(var f=0;f<a;f++)b[f]=e}x.push({primitive:\"MemoCache\",\nstackError:Error(),value:b});return b},useReducer:function(a,b,e){a=C();b=null!==a?a.memoizedState:void 0!==e?e(b):b;x.push({primitive:\"Reducer\",stackError:Error(),value:b});return[b,function(){}]},useRef:function(a){var b=C();a=null!==b?b.memoizedState:{current:a};x.push({primitive:\"Ref\",stackError:Error(),value:a.current});return a},useState:function(a){var b=C();a=null!==b?b.memoizedState:\"function\"===typeof a?a():a;x.push({primitive:\"State\",stackError:Error(),value:a});return[a,function(){}]},\nuseTransition:function(){C();C();x.push({primitive:\"Transition\",stackError:Error(),value:void 0});return[!1,function(){}]},useSyncExternalStore:function(a,b){C();C();a=b();x.push({primitive:\"SyncExternalStore\",stackError:Error(),value:a});return a},useDeferredValue:function(a){var b=C();x.push({primitive:\"DeferredValue\",stackError:Error(),value:null!==b?b.memoizedState:a});return a},useId:function(){var a=C();a=null!==a?a.memoizedState:\"\";x.push({primitive:\"Id\",stackError:Error(),value:a});return a}},\nD={get:function(a,b){if(a.hasOwnProperty(b))return a[b];a=Error(\"Missing method in Dispatcher: \"+b);a.name=\"ReactDebugToolsUnsupportedHookError\";throw a;}},E=\"undefined\"===typeof Proxy?A:new Proxy(A,D),F=0;function G(a,b,e){var f=b[e].source,c=0;a:for(;c<a.length;c++)if(a[c].source===f){for(var k=e+1,r=c+1;k<b.length&&r<a.length;k++,r++)if(a[r].source!==b[k].source)continue a;return c}return-1}\nfunction H(a,b){if(!a)return!1;b=\"use\"+b;return a.length<b.length?!1:a.lastIndexOf(b)===a.length-b.length}\nfunction I(a,b,e){for(var f=[],c=null,k=f,r=0,t=[],v=0;v<b.length;v++){var u=b[v];var d=a;var l=h.parse(u.stackError);b:{var m=l,n=G(m,d,F);if(-1!==n)d=n;else{for(var g=0;g<d.length&&5>g;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;g<n.length&&g<m.length;g++)if(n[g].source!==m[g].source){g<m.length-1&&H(m[g].functionName,u.primitive)&&g++;g<m.length-1&&H(m[g].functionName,u.primitive)&&g++;m=g;break b}m=-1}l=-1===d||-1===m||2>d-m?null:l.slice(m,\nd-1);if(null!==l){d=0;if(null!==c){for(;d<l.length&&d<c.length&&l[l.length-d-1].source===c[c.length-d-1].source;)d++;for(c=c.length-1;c>d;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<a.length;f++){var c=a[f];\"DebugValue\"===c.name&&0===c.subHooks.length?(a.splice(f,1),f--,e.push(c)):J(c.subHooks,c)}null!==b&&(1===e.length?b.value=e[0].value:1<e.length&&(b.value=e.map(function(k){return k.value})))}function K(a){if(a instanceof Error&&\"ReactDebugToolsUnsupportedHookError\"===a.name)throw a;var b=Error(\"Error rendering inspected component\",{cause:a});b.name=\"ReactDebugToolsRenderError\";b.cause=a;throw b;}\nfunction L(a,b,e){var f=3<arguments.length&&void 0!==arguments[3]?arguments[3]:!1;null==e&&(e=w.ReactCurrentDispatcher);var c=e.current;e.current=E;try{var k=Error();a(b)}catch(t){K(t)}finally{var r=x;x=[];e.current=c}c=h.parse(k);return I(c,r,f)}function M(a){a.forEach(function(b,e){return e._currentValue=b})}exports.inspectHooks=L;\nexports.inspectHooksOfFiber=function(a,b){var e=2<arguments.length&&void 0!==arguments[2]?arguments[2]:!1;null==b&&(b=w.ReactCurrentDispatcher);if(0!==a.tag&&15!==a.tag&&11!==a.tag)throw Error(\"Unknown Fiber. Needs to be a function component to inspect hooks.\");z();var f=a.type,c=a.memoizedProps;if(f!==a.elementType&&f&&f.defaultProps){c=q({},c);var k=f.defaultProps;for(r in k)void 0===c[r]&&(c[r]=k[r])}B=a.memoizedState;var r=new Map;try{for(k=a;k;){if(10===k.tag){var t=k.type._context;r.has(t)||\n(r.set(t,t._currentValue),t._currentValue=k.memoizedProps.value)}k=k.return}if(11===a.tag){var v=f.render;f=c;var u=a.ref;t=b;var d=t.current;t.current=E;try{var l=Error();v(f,u)}catch(g){K(g)}finally{var m=x;x=[];t.current=d}var n=h.parse(l);return I(n,m,e)}return L(f,c,b,e)}finally{B=null,M(r)}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-debug-tools.production.min.js');\n} else {\n module.exports = require('./cjs/react-debug-tools.development.js');\n}\n","/**\n * @license React\n * react-is.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 b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u=Symbol.for(\"react.cache\"),v=Symbol.for(\"react.client.reference\");\nfunction w(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return w(a)===h};exports.isContextProvider=function(a){return w(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return w(a)===l};exports.isFragment=function(a){return w(a)===d};exports.isLazy=function(a){return w(a)===q};exports.isMemo=function(a){return w(a)===p};\nexports.isPortal=function(a){return w(a)===c};exports.isProfiler=function(a){return w(a)===f};exports.isStrictMode=function(a){return w(a)===e};exports.isSuspense=function(a){return w(a)===m};exports.isSuspenseList=function(a){return w(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||a===u||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===v||void 0!==a.getModuleId)?!0:!1};exports.typeOf=w;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react.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 l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.server_context\"),w=Symbol.for(\"react.forward_ref\"),x=Symbol.for(\"react.suspense\"),y=Symbol.for(\"react.suspense_list\"),z=Symbol.for(\"react.memo\"),A=Symbol.for(\"react.lazy\"),aa=Symbol.for(\"react.debug_trace_mode\"),ba=Symbol.for(\"react.offscreen\"),ca=\nSymbol.for(\"react.cache\"),B=Symbol.for(\"react.default_value\"),C=Symbol.iterator;function da(a){if(null===a||\"object\"!==typeof a)return null;a=C&&a[C]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,F={};function G(a,b,c){this.props=a;this.context=b;this.refs=F;this.updater=c||D}G.prototype.isReactComponent={};\nG.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};G.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function H(){}H.prototype=G.prototype;function I(a,b,c){this.props=a;this.context=b;this.refs=F;this.updater=c||D}var J=I.prototype=new H;\nJ.constructor=I;E(J,G.prototype);J.isPureReactComponent=!0;var K=Array.isArray,L=Object.prototype.hasOwnProperty,M={current:null},N={key:!0,ref:!0,__self:!0,__source:!0};\nfunction O(a,b,c){var d,e={},f=null,g=null;if(null!=b)for(d in void 0!==b.ref&&(g=b.ref),void 0!==b.key&&(f=\"\"+b.key),b)L.call(b,d)&&!N.hasOwnProperty(d)&&(e[d]=b[d]);var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){for(var k=Array(h),m=0;m<h;m++)k[m]=arguments[m+2];e.children=k}if(a&&a.defaultProps)for(d in h=a.defaultProps,h)void 0===e[d]&&(e[d]=h[d]);return{$$typeof:l,type:a,key:f,ref:g,props:e,_owner:M.current}}\nfunction ea(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function P(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(c){return b[c]})}var Q=/\\/+/g;function R(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction S(a,b,c,d,e){var f=typeof a;if(\"undefined\"===f||\"boolean\"===f)a=null;var g=!1;if(null===a)g=!0;else switch(f){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case l:case n:g=!0}}if(g)return g=a,e=e(g),a=\"\"===d?\".\"+R(g,0):d,K(e)?(c=\"\",null!=a&&(c=a.replace(Q,\"$&/\")+\"/\"),S(e,b,c,\"\",function(m){return m})):null!=e&&(P(e)&&(e=ea(e,c+(!e.key||g&&g.key===e.key?\"\":(\"\"+e.key).replace(Q,\"$&/\")+\"/\")+a)),b.push(e)),1;g=0;d=\"\"===d?\".\":d+\":\";if(K(a))for(var h=0;h<a.length;h++){f=\na[h];var k=d+R(f,h);g+=S(f,b,c,k,e)}else if(k=da(a),\"function\"===typeof k)for(a=k.call(a),h=0;!(f=a.next()).done;)f=f.value,k=d+R(f,h++),g+=S(f,b,c,k,e);else if(\"object\"===f)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return g}\nfunction T(a,b,c){if(null==a)return a;var d=[],e=0;S(a,d,\"\",\"\",function(f){return b.call(c,f,e++)});return d}function fa(a){if(-1===a._status){var b=a._result;b=b();b.then(function(c){if(0===a._status||-1===a._status)a._status=1,a._result=c},function(c){if(0===a._status||-1===a._status)a._status=2,a._result=c});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}var U={current:null};function ha(){return new WeakMap}\nfunction V(){return{s:0,v:void 0,o:null,p:null}}var W={current:null},X={transition:null},Y={ReactCurrentDispatcher:W,ReactCurrentCache:U,ReactCurrentBatchConfig:X,ReactCurrentOwner:M,ContextRegistry:{}},Z=Y.ContextRegistry;\nexports.Children={map:T,forEach:function(a,b,c){T(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;T(a,function(){b++});return b},toArray:function(a){return T(a,function(b){return b})||[]},only:function(a){if(!P(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=G;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=I;exports.StrictMode=q;exports.Suspense=x;exports.SuspenseList=y;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Y;\nexports.cache=function(a){return function(){var b=U.current;if(!b)return a.apply(null,arguments);var c=b.getCacheForType(ha);b=c.get(a);void 0===b&&(b=V(),c.set(a,b));c=0;for(var d=arguments.length;c<d;c++){var e=arguments[c];if(\"function\"===typeof e||\"object\"===typeof e&&null!==e){var f=b.o;null===f&&(b.o=f=new WeakMap);b=f.get(e);void 0===b&&(b=V(),f.set(e,b))}else f=b.p,null===f&&(b.p=f=new Map),b=f.get(e),void 0===b&&(b=V(),f.set(e,b))}if(1===b.s)return b.v;if(2===b.s)throw b.v;try{var g=a.apply(null,\narguments);c=b;c.s=1;return c.v=g}catch(h){throw g=b,g.s=2,g.v=h,h;}}};\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=E({},a.props),e=a.key,f=a.ref,g=a._owner;if(null!=b){void 0!==b.ref&&(f=b.ref,g=M.current);void 0!==b.key&&(e=\"\"+b.key);if(a.type&&a.type.defaultProps)var h=a.type.defaultProps;for(k in b)L.call(b,k)&&!N.hasOwnProperty(k)&&(d[k]=void 0===b[k]&&void 0!==h?h[k]:b[k])}var k=arguments.length-2;if(1===k)d.children=c;else if(1<k){h=Array(k);\nfor(var m=0;m<k;m++)h[m]=arguments[m+2];d.children=h}return{$$typeof:l,type:a.type,key:e,ref:f,props:d,_owner:g}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=O;exports.createFactory=function(a){var b=O.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.createServerContext=function(a,b){var c=!0;if(!Z[a]){c=!1;var d={$$typeof:v,_currentValue:b,_currentValue2:b,_defaultValue:b,_threadCount:0,Provider:null,Consumer:null,_globalName:a};d.Provider={$$typeof:t,_context:d};Z[a]=d}d=Z[a];if(d._defaultValue===B)d._defaultValue=b,d._currentValue===B&&(d._currentValue=b),d._currentValue2===B&&(d._currentValue2=b);else if(c)throw Error(\"ServerContext: \"+a+\" already defined\");return d};exports.experimental_useEffectEvent=function(a){return W.current.useEffectEvent(a)};\nexports.experimental_useOptimistic=function(a,b){return W.current.useOptimistic(a,b)};exports.forwardRef=function(a){return{$$typeof:w,render:a}};exports.isValidElement=P;exports.lazy=function(a){return{$$typeof:A,_payload:{_status:-1,_result:a},_init:fa}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=X.transition;X.transition={};try{a()}finally{X.transition=b}};exports.unstable_Cache=ca;\nexports.unstable_DebugTracingMode=aa;exports.unstable_Offscreen=ba;exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};exports.unstable_getCacheForType=function(a){var b=U.current;return b?b.getCacheForType(a):a()};exports.unstable_getCacheSignal=function(){var a=U.current;return a?a.getCacheSignal():(a=new AbortController,a.abort(Error(\"This CacheSignal was requested outside React which means that it is immediately aborted.\")),a.signal)};\nexports.unstable_useCacheRefresh=function(){return W.current.useCacheRefresh()};exports.unstable_useMemoCache=function(a){return W.current.useMemoCache(a)};exports.use=function(a){return W.current.use(a)};exports.useCallback=function(a,b){return W.current.useCallback(a,b)};exports.useContext=function(a){return W.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return W.current.useDeferredValue(a)};\nexports.useEffect=function(a,b){return W.current.useEffect(a,b)};exports.useId=function(){return W.current.useId()};exports.useImperativeHandle=function(a,b,c){return W.current.useImperativeHandle(a,b,c)};exports.useInsertionEffect=function(a,b){return W.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return W.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return W.current.useMemo(a,b)};exports.useReducer=function(a,b,c){return W.current.useReducer(a,b,c)};\nexports.useRef=function(a){return W.current.useRef(a)};exports.useState=function(a){return W.current.useState(a)};exports.useSyncExternalStore=function(a,b,c){return W.current.useSyncExternalStore(a,b,c)};exports.useTransition=function(){return W.current.useTransition()};exports.version=\"18.3.0-experimental-53ac21937-20230703\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\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('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -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', '<anonymous>'].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(/<anonymous function(: (\\w+))?>/, '$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) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\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<Events: Object> {\n listenersMap: Map<string, Array<Function>> = new Map();\n\n addListener<Event: $Keys<Events>>(\n event: Event,\n listener: (...$ElementType<Events, Event>) => 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<Event: $Keys<Events>>(\n event: Event,\n ...args: $ElementType<Events, Event>\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<Events>, 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>): 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<Rect | ClientRect> = [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<OverlayRect>;\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<HTMLElement>, 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<HTMLElement> | 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<HTMLIFrameElement> = 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<HTMLElement> = (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<NativeType, Data>, 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<NativeType, Data>,\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<NativeType, Data> = 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<NativeType>): 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<any> {\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<any>) => 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 (\"<filename>:<line-number>:<column-number>\") 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<HookSourceLocationKey, HookName>;\n\nexport type LRUCache<K, V> = {\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<string>,\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<Function, string> = new WeakMap();\n\n// On large trees, encoding takes significant time.\n// Try to reuse the already encoded strings.\nconst encodedStringCache: LRUCache<string, Array<number>> = 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<string | number | symbol> {\n const keys = new Set<string | number | symbol>();\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<number>): 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<number> {\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<number>) {\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<null | string> = [\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<ComponentFilter> {\n return [\n {\n type: ComponentFilterElementType,\n value: ElementTypeHostComponent,\n isEnabled: true,\n },\n ];\n}\n\nexport function getSavedComponentFilters(): Array<ComponentFilter> {\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<ComponentFilter>,\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<string> | 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<string | number>): 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<string | number>,\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<string | number>,\n newPath: Array<string | number>,\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<string | number>,\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<any>,\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<Array<string | number>>,\n path: Array<string | number>,\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<Array<string | number>>,\n unserializable: Array<Array<string | number>>,\n path: Array<string | number>,\n isPathAllowed: (path: Array<string | number>) => boolean,\n level?: number = 0,\n): $PropertyType<DehydratedData, 'data'> {\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<DehydratedData, 'data'>,\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<string | number>,\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<Array<string | number>>,\n unserializable: Array<Array<string | number>>,\n): Object {\n cleaned.forEach((path: Array<string | number>) => {\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<string | number>) => {\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<string | number>) => boolean,\n path: Array<string | number> = [],\n): DehydratedData | null {\n if (data !== null) {\n const cleanedPaths: Array<Array<string | number>> = [];\n const unserializablePaths: Array<Array<string | number>> = [];\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<any>,\n path: Array<string | number>,\n index: number = 0,\n): Object | Array<any> {\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<any>,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n index: number = 0,\n): Object | Array<any> {\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<any>,\n path: Array<string | number>,\n value: any,\n index: number = 0,\n): Object | Array<any> {\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<mixed>();\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<any>,\n style?: string,\n): $ReadOnlyArray<any> {\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<any>\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<string, string> = new Map();\n\nexport function getStyleXData(data: any): StyleXPlugin {\n const sources = new Set<string>();\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<string>,\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<string, any>(\n Object.entries(resolvedStyles).sort(),\n );\n}\n\nfunction crawlObjectProperties(\n entry: Object,\n sources: Set<string>,\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<any, any> = (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<Lane, string> | 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<ReactMeasure> = [];\n let currentTimelineData: TimelineData | null = null;\n let currentFiberStacks: Map<SchedulingEvent, Array<Fiber>> = 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<Wakeable, number> = 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<Fiber> {\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<ReactLane, ReactMeasure[]>();\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<Fiber, number> = 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<number, Fiber> = 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<Fiber> = new Set();\n const pendingFiberToErrorsMap: Map<Fiber, Map<string, number>> = new Map();\n const pendingFiberToWarningsMap: Map<Fiber, Map<string, number>> = new Map();\n\n // Mapping of fiber IDs to error/warning messages and counts.\n const fiberIDToErrorsMap: Map<number, Map<string, number>> = new Map();\n const fiberIDToWarningsMap: Map<number, Map<string, number>> = 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<Fiber, Map<string, number>>,\n fiberIDToMessageCountMap: Map<number, Map<string, number>>,\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<any>,\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) || '<no id>';\n const parentDisplayName = parentFiber\n ? parentFiber.tag +\n ':' +\n (getDisplayNameForFiber(parentFiber) || 'null')\n : '';\n const maybeParentID = parentFiber\n ? getFiberIDUnsafe(parentFiber) || '<no-id>'\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<RegExp> = new Set();\n const hideElementsWithPaths: Set<RegExp> = new Set();\n const hideElementsWithTypes: Set<ElementType> = new Set();\n\n // Highlight updates\n let traceUpdatesEnabled: boolean = false;\n const traceUpdatesForNodes: Set<NativeType> = new Set();\n\n function applyComponentFilters(componentFilters: Array<ComponentFilter>) {\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<ComponentFilter>) {\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<number, number> = 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<number, number> = 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<Fiber> = 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<string> {\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<number> {\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<string> {\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<number>;\n\n type StringTableEntry = {\n encodedString: Array<number>,\n id: number,\n };\n\n const pendingOperations: OperationsArray = [];\n const pendingRealUnmountedIDs: Array<number> = [];\n const pendingSimulatedUnmountedIDs: Array<number> = [];\n let pendingOperationsQueue: Array<OperationsArray> | null = [];\n const pendingStringTable: Map<string, StringTableEntry> = 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<Fiber, Map<string, number>>,\n fiberIDToMessageCountMap: Map<number, Map<string, number>>,\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<number>(\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<number> = [];\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<number>,\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<SerializedElement> | 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<Fiber> {\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<string | number>,\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<SerializedElement> | null {\n const fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber == null) {\n return null;\n }\n\n const {_debugOwner} = fiber;\n\n const owners: Array<SerializedElement> = [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<SerializedElement>);\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<string | number>) {\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<string | number>): 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<string | number>,\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<string | number>,\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<string | number> | 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<string | number>,\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<string | number>,\n newPath: Array<string | number>,\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<string | number>,\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<number, ChangeDescription> | null,\n commitTime: number,\n durations: Array<number>,\n effectDuration: number | null,\n maxActualDuration: number,\n passiveEffectDuration: number | null,\n priorityLevel: string | null,\n updaters: Array<SerializedElement> | null,\n };\n\n type CommitProfilingMetadataMap = Map<number, Array<CommitProfilingData>>;\n type DisplayNamesByRootID = Map<number, string>;\n\n let currentCommitProfilingMetadata: CommitProfilingData | null = null;\n let displayNamesByRootID: DisplayNamesByRootID | null = null;\n let idToContextsMap: Map<number, any> | null = null;\n let initialTreeBaseDurationsMap: Map<number, number> | null = null;\n let initialIDToRootMap: Map<number, number> | 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<ProfilingDataForRootBackend> = [];\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<CommitDataBackend> = [];\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<number | null, $FlowFixMe>();\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<number>();\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<PathFrame> | null = null;\n let trackedPathMatchFiber: Fiber | null = null;\n let trackedPathMatchDepth = -1;\n let mightBeOnTrackedPath = false;\n\n function setTrackedPath(path: Array<PathFrame> | 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<number, string> = new Map();\n const rootDisplayNameCounter: Map<string, number> = 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<PathFrame> | 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<string>, 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<any>,\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<BridgeProtocol> = [\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<string | number>,\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<string | number>,\n};\n\ntype RenamePath = {\n ...ElementAndRendererID,\n type: PathType,\n hookID?: ?number,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n};\n\ntype OverrideValueAtPath = {\n ...ElementAndRendererID,\n type: PathType,\n hookID?: ?number,\n path: Array<string | number>,\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<string | number>,\n};\n\ntype ViewAttributeSourceParams = {\n ...ElementAndRendererID,\n path: Array<string | number>,\n};\n\ntype InspectElementParams = {\n ...ElementAndRendererID,\n forceFullData: boolean,\n path: Array<number | string> | null,\n requestID: number,\n};\n\ntype StoreAsGlobalParams = {\n ...ElementAndRendererID,\n count: number,\n path: Array<string | number>,\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<ComponentFilter>,\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<number>],\n ownersList: [OwnersList],\n overrideComponentFilters: [Array<ComponentFilter>],\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<string>},\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<ComponentFilter>],\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<any> = [];\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<EventName: $Keys<OutgoingEvents>>(\n event: EventName,\n ...payload: $ElementType<OutgoingEvents, EventName>\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<BackendEvents, FrontendEvents>;\nexport type FrontendBridge = Bridge<FrontendEvents, BackendEvents>;\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<string>) => {\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<string | number>,\n rendererID: number,\n};\n\ntype CopyElementParams = {\n id: number,\n path: Array<string | number>,\n rendererID: number,\n};\n\ntype InspectElementParams = {\n forceFullData: boolean,\n id: number,\n path: Array<string | number> | null,\n rendererID: number,\n requestID: number,\n};\n\ntype OverrideHookParams = {\n id: number,\n hookID: number,\n path: Array<string | number>,\n rendererID: number,\n wasForwarded?: boolean,\n value: any,\n};\n\ntype SetInParams = {\n id: number,\n path: Array<string | number>,\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<string | number>,\n rendererID: number,\n};\n\ntype RenamePathParams = {\n type: PathType,\n hookID?: ?number,\n id: number,\n oldPath: Array<string | number>,\n newPath: Array<string | number>,\n rendererID: number,\n};\n\ntype OverrideValueAtPathParams = {\n type: PathType,\n hookID?: ?number,\n id: number,\n path: Array<string | number>,\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<PathFrame>,\n};\n\nexport default class Agent extends EventEmitter<{\n hideNativeHighlight: [],\n showNativeHighlight: [NativeType],\n startInspectingNative: [],\n stopInspectingNative: [],\n shutdown: [],\n traceUpdates: [Set<NativeType>],\n drawTraceUpdates: [Array<NativeType>],\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<ComponentFilter>) => 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<NativeType>) => 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<number>) => 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<any>,\n style?: string,\n ): $ReadOnlyArray<any> {\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<any>) => {\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<StackFrameString> = [];\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<mixed>} = {};\n const rendererInterfaces = new Map<RendererID, RendererInterface>();\n const listeners: {[string]: Array<Handler>} = {};\n const renderers = new Map<RendererID, ReactRenderer>();\n const backends = new Map<string, DevToolsBackend>();\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<any> {\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<number, InternalInstance> = new Map();\n const internalInstanceToIDMap: WeakMap<InternalInstance, number> =\n new WeakMap();\n const internalInstanceToRootIDMap: WeakMap<InternalInstance, number> =\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<any>, b: Array<any>) {\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<InternalInstance>,\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<number> = [];\n const pendingStringTable: Map<string, number> = new Map();\n let pendingUnmountedIDs: Array<number> = [];\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<number>(\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<string | number>) {\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<string | number>): 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<string | number>,\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<string | number>,\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<string | number> | 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<SerializedElement>);\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<string | number>,\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<string | number>,\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<string | number>,\n newPath: Array<string | number>,\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<string | number>,\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<PathFrame> | null {\n // Not implemented.\n return null;\n }\n\n function updateComponentFilters(componentFilters: Array<ComponentFilter>) {\n // Not implemented.\n }\n\n function setTraceUpdatesEnabled(enabled: boolean) {\n // Not implemented.\n }\n\n function setTrackedPath(path: Array<PathFrame> | null) {\n // Not implemented.\n }\n\n function getOwnersList(id: number): Array<SerializedElement> | 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<string> | 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<number, Object> = 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<string>,\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<ComponentFilter> =\n getDefaultComponentFilters();\n\nfunction debug(methodName: string, ...args: Array<mixed>) {\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<any>) {\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<ComponentFilter>) => {\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":""}