1 line
926 KiB
Plaintext
1 line
926 KiB
Plaintext
{"version":3,"sources":["webpack://ReactDevToolsBackend/webpack/universalModuleDefinition","webpack://ReactDevToolsBackend/webpack/bootstrap","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/build/node_modules/react-is/index.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/object-assign/index.js","webpack://ReactDevToolsBackend/../react-devtools-shared/node_modules/semver/semver.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/lodash.throttle/index.js","webpack://ReactDevToolsBackend/(webpack)/buildin/global.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/process/browser.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/lru-cache/index.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/clipboard-js/clipboard.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/build/node_modules/react-debug-tools/index.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/lru-cache/node_modules/yallist/yallist.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/lru-cache/node_modules/yallist/iterator.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/build/node_modules/react-is/cjs/react-is.production.min.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/timers-browserify/main.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/setimmediate/setImmediate.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/build/node_modules/react-debug-tools/cjs/react-debug-tools.production.min.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/error-stack-parser/error-stack-parser.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/node_modules/stackframe/stackframe.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/build/node_modules/react/index.js","webpack://ReactDevToolsBackend//Users/jstejada/code/jstejada-react/build/node_modules/react/cjs/react.production.min.js","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//Users/jstejada/code/jstejada-react/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/../react-devtools-shared/src/types.js","webpack://ReactDevToolsBackend/../shared/ReactSymbols.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/hydration.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/utils.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.default.js","webpack://ReactDevToolsBackend/../shared/objectIs.js","webpack://ReactDevToolsBackend/../react-devtools-shared/src/backend/renderer.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/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/backend.js"],"names":["process","module","exports","require","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","n","join","test3","split","forEach","letter","keys","err","target","source","from","to","symbols","s","arguments","length","key","call","SemVer","debug","env","NODE_DEBUG","test","args","Array","slice","unshift","console","log","apply","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","Number","MAX_SAFE_COMPONENT_LENGTH","re","src","t","tokens","R","tok","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULLPLAIN","FULL","LOOSEPLAIN","LOOSE","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","XRANGE","XRANGELOOSE","COERCE","COERCERTL","RegExp","LONETILDE","TILDETRIM","tildeTrimReplace","TILDE","TILDELOOSE","LONECARET","CARETTRIM","caretTrimReplace","CARET","CARETLOOSE","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","comparatorTrimReplace","HYPHENRANGE","HYPHENRANGELOOSE","STAR","parse","version","options","loose","includePrerelease","r","er","valid","v","clean","trim","replace","m","match","raw","major","minor","patch","prerelease","id","num","build","format","toString","compare","other","compareMain","comparePre","compareIdentifiers","a","b","compareBuild","inc","release","identifier","push","isNaN","Error","diff","version1","version2","eq","v1","v2","prefix","defaultResult","numeric","anum","bnum","rcompareIdentifiers","compareLoose","versionA","versionB","rcompare","sort","list","rsort","gt","lt","neq","gte","lte","cmp","op","Comparator","comp","value","semver","ANY","operator","intersects","rangeTmp","Range","satisfies","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","range","set","parseRange","filter","c","comps","hr","hyphenReplace","compRe","parseComparator","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","comparators","result","remainingComparators","testComparator","pop","otherComparator","toComparators","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","toLowerCase","replaceTilde","_","M","p","pr","ret","replaceCaret","replaceXRange","gtlt","xM","xm","xp","anyX","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","testSet","allowed","maxSatisfying","versions","max","maxSV","rangeObj","minSatisfying","min","minSV","minVersion","minver","comparator","compver","validRange","ltr","outside","gtr","hilo","gtfn","ltefn","ltfn","ecomp","high","low","parsed","r1","r2","coerce","rtl","next","exec","index","lastIndex","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","self","root","Function","objectProto","objectToString","nativeMax","Math","nativeMin","now","Date","debounce","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","toNumber","isObject","invokeFunc","time","thisArg","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","throttle","type","isObjectLike","isSymbol","valueOf","isBinary","g","e","window","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","nextTick","Item","array","title","browser","argv","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","Yallist","MAX","Symbol","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","LRUCache","Infinity","lc","stale","maxAge","dispose","noDisposeOnSet","updateAgeOnGet","reset","fn","thisp","walker","tail","prev","forEachStep","head","toArray","k","hit","Map","isStale","h","has","del","get","node","item","Entry","arr","l","expiresAt","mL","allowStale","mA","lC","doUse","unshiftNode","delete","removeNode","definition","document","addEventListener","clipboard","copy","_intercept","_data","_bogusSelection","cleanup","getSelection","removeAllRanges","clipboardData","setData","preventDefault","bogusSelect","sel","queryCommandEnabled","isCollapsed","createRange","selectNodeContents","body","addRange","data","Promise","resolve","reject","Node","XMLSerializer","serializeToString","triggerCopy","tryBogusSelect","execCommand","paste","_resolve","_dataType","getData","dataType","ClipboardEvent","_state","_value","_deferreds","f","d","j","onFulfilled","onRejected","then","immediateFn","setImmediate","isArray","all","constructor","race","strData","copySucceeded","create","pushNode","res","shift","forEachReverse","getReverse","mapReverse","reduce","initial","acc","reduceReverse","toArrayReverse","sliceReverse","splice","start","deleteCount","insert","reverse","inserted","iterator","q","u","for","w","x","y","$$typeof","z","A","B","C","D","E","F","G","H","I","J","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","scope","Timeout","setInterval","clearInterval","close","clearFn","_id","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","onTimeout","_onTimeout","clearImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","registerImmediate","callback","task","handle","runIfPresent","installNextTickImplementation","canUsePostMessage","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","installPostMessageImplementation","messagePrefix","random","onGlobalMessage","event","indexOf","attachEvent","installMessageChannelImplementation","channel","MessageChannel","port1","port2","installReadyStateChangeImplementation","html","documentElement","script","createElement","onreadystatechange","removeChild","appendChild","installSetTimeoutImplementation","attachTo","getPrototypeOf","encodeURIComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","useContext","_currentValue","useState","useReducer","useRef","useCacheRefresh","useLayoutEffect","useEffect","useImperativeHandle","useDebugValue","useCallback","useMemo","primitive","stackError","getCacheForType","readContext","memoizedState","current","useTransition","useMutableSource","_source","useDeferredValue","useOpaqueIdentifier","mode","lastIndexOf","functionName","substr","isStateEditable","subHooks","hookSource","lineNumber","columnNumber","fileName","K","L","ReactCurrentDispatcher","inspectHooks","inspectHooksOfFiber","tag","memoizedProps","elementType","defaultProps","_context","return","render","factory","define","ErrorStackParser","StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","ErrorStackParser$$parse","error","stacktrace","parseOpera","stack","parseV8OrIE","parseFFOrSafari","extractLocation","ErrorStackParser$$extractLocation","urlLike","regExp","parts","ErrorStackParser$$parseV8OrIE","filtered","line","sanitizedLine","location","locationParts","ErrorStackParser$$parseFFOrSafari","functionNameRegex","matches","ErrorStackParser$$parseOpera","message","parseOpera9","parseOpera10","parseOpera11","ErrorStackParser$$parseOpera9","lineRE","lines","ErrorStackParser$$parseOpera10","ErrorStackParser$$parseOpera11","functionCall","argsRaw","_isNumber","parseFloat","isFinite","_capitalize","str","charAt","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","arrayProps","props","obj","getArgs","setArgs","getEvalOrigin","evalOrigin","setEvalOrigin","getFileName","getLineNumber","getColumnNumber","getFunctionName","getIsEval","fromString","StackFrame$$fromString","argsStartIndex","argsEndIndex","locationString","Boolean","unstable_DebugTracingMode","unstable_Offscreen","unstable_LegacyHidden","unstable_Cache","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","context","refs","updater","isReactComponent","setState","forceUpdate","isPureReactComponent","__self","__source","children","_owner","escape","N","O","P","done","Q","_status","_result","default","S","T","transition","U","ReactCurrentBatchConfig","ReactCurrentOwner","Children","count","only","Component","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","createFactory","bind","createRef","forwardRef","isValidElement","lazy","_payload","_init","memo","startTransition","unstable_act","unstable_createMutableSource","_getVersion","_workInProgressVersionPrimary","_workInProgressVersionSecondary","unstable_getCacheForType","unstable_useCacheRefresh","unstable_useMutableSource","unstable_useOpaqueIdentifier","EventEmitter","listener","listenersMap","didThrow","caughtError","clonedListeners","clear","__DEBUG__","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","LOCAL_STORAGE_FILTER_PREFERENCES_KEY","SESSION_STORAGE_LAST_SELECTION_KEY","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_SHOULD_PATCH_CONSOLE_KEY","LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY","LOCAL_STORAGE_TRACE_UPDATES_ENABLED_KEY","PROFILER_EXPORT_VERSION","CHANGE_LOG_URL","UNSUPPORTED_VERSION_URL","REACT_DEVTOOLS_WORKPLACE_URL","THEME_STYLES","light","dark","compact","comfortable","COMFORTABLE_LINE_HEIGHT","COMPACT_LINE_HEIGHT","localStorageGetItem","localStorage","getItem","localStorageRemoveItem","removeItem","localStorageSetItem","setItem","sessionStorageGetItem","sessionStorage","sessionStorageRemoveItem","sessionStorageSetItem","simpleIsEqual","resultFn","isEqual","lastResult","calledOnce","isNewArgEqualToLast","newArg","_len","newArgs","_key","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","getComputedStyle","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","marginLeft","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","OverlayRect","container","border","padding","content","style","borderColor","overlayStyles","backgroundColor","background","margin","pointerEvents","position","zIndex","parentNode","box","dims","boxWrap","OverlayTip","tip","display","flexFlow","borderRadius","fontFamily","fontWeight","fontSize","whiteSpace","nameSpan","color","dimSpan","textContent","round","bounds","tipRect","tipPos","findTipPos","Overlay","currentWindow","__REACT_DEVTOOLS_TARGET_WINDOW__","tipBoundsWindow","remove","nodes","elements","nodeType","ELEMENT_NODE","outerBox","POSITIVE_INFINITY","NEGATIVE_INFINITY","element","update","nodeName","hook","__REACT_DEVTOOLS_GLOBAL_HOOK__","rendererInterfaces","ownerName","values","rendererInterface","getFiberIDForNative","getDisplayNameForFiberID","updateText","tipBounds","updatePosition","scrollY","scrollX","innerHeight","innerWidth","tipSize","tipHeight","tipWidth","what","borderStyle","SHOW_DURATION","timeoutID","overlay","hideOverlay","showOverlay","componentName","hideAfterTimeout","inspect","iframesListeningTo","Set","setupHighlighter","bridge","agent","clearNativeElementHighlight","highlightNativeElement","stopInspectingNative","startInspectingNative","registerListenersOnWindow","onClick","onMouseEvent","onPointerDown","onPointerOver","onPointerUp","removeListenersOnWindow","frame","contentWindow","removeEventListener","displayName","openNativeElementsPanel","rendererID","scrollIntoView","renderer","warn","findNativeNodesForFiberID","block","inline","send","stopPropagation","selectFiberForNode","tagName","iframe","add","memoize","getIDForNode","OUTLINE_COLOR","COLORS","canvas","draw","nodeToData","initialize","canvasFlow","getContext","clearRect","colorIndex","drawBorder","lineWidth","strokeStyle","strokeRect","setLineDash","destroy","cssText","insertBefore","firstChild","DISPLAY_DURATION","MAX_DISPLAY_DURATION","REMEASUREMENT_AFTER_DURATION","getCurrentTime","performance","drawAnimationFrameID","isEnabled","redrawTimeoutID","injectedAgent","traceUpdates","toggleEnabled","cancelAnimationFrame","destroyCanvas","lastMeasuredAt","measureNode","expirationTime","requestAnimationFrame","prepareToDraw","earliestExpiration","MAX_VALUE","ElementTypeClass","ElementTypeContext","ElementTypeFunction","ElementTypeForwardRef","ElementTypeHostComponent","ElementTypeMemo","ElementTypeOtherOrUnknown","ElementTypeProfiler","ElementTypeRoot","ElementTypeSuspense","ElementTypeSuspenseList","ComponentFilterElementType","ComponentFilterDisplayName","ComponentFilterLocation","ComponentFilterHOC","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_SCOPE_TYPE","REACT_OPAQUE_ID_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_OFFSCREEN_TYPE","REACT_LEGACY_HIDDEN_TYPE","REACT_CACHE_TYPE","symbolFor","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","meta","inspectable","inspected","preview_long","preview_short","readonly","size","unserializable","LEVEL_THRESHOLD","createDehydrated","cleaned","path","dehydrated","formatDataForPreview","dehydrate","isPathAllowed","level","getDataType","isPathAllowedCheck","getDisplayNameForReactElement","byteLength","unserializableValue","toStringTag","object","getAllEnumerableKeys","fillInPath","getInObject","unserializablePath","isMatch","upgradeUnserializable","setInObject","hydrate","last","parent","NaN","replaced","replacement","destination","defineProperties","configurable","enumerable","cachedDisplayNames","WeakMap","encodedStringCache","LRU","alphaSortKeys","currentKeys","descriptors","getOwnPropertyDescriptors","getDisplayName","fallbackName","nameFromCache","uidCounter","getUID","utfDecodeString","fromCodePoint","utfEncodeString","string","cached","encoded","codePointAt","printOperationsArray","operations","rootID","logs","stringTable","stringTableSize","stringTableEnd","nextLength","nextString","operation","parentID","displayNameStringID","removeLength","removeIndex","numChildren","numErrors","numWarnings","getDefaultComponentFilters","getSavedComponentFilters","JSON","saveComponentFilters","componentFilters","stringify","getAppendComponentStack","setAppendComponentStack","getBreakOnConsoleErrors","setBreakOnConsoleErrors","getShowInlineWarningsAndErrors","setShowInlineWarningsAndErrors","separateDisplayNameAndHOCs","hocDisplayNames","shallowDiffers","attribute","reduced","attr","deletePathInObject","renamePathInObject","oldPath","newPath","lastOld","lastNew","HTMLElement","ArrayBuffer","isView","toStringValue","MAX_PREVIEW_STRING_LENGTH","truncateForDisplay","showFormattedValue","buffer","formatted","shortName","entryOrEntries","isArrayImpl","cleanForBridge","cleanedPaths","unserializablePaths","cleanedData","copyToClipboard","safeToCopy","text","clipboardCopyText","catch","copyWithDelete","updated","copyWithRename","oldKey","newKey","copyWithSet","getEffectDurations","effectDuration","passiveEffectDuration","hostRoot","stateNode","cache","maybeMessage","inputArgs","REGEXP","escaped","ptn","flag","arg","isSynchronousXHRSupported","featurePolicy","allowsFeature","CONCURRENT_MODE_NUMBER","CONCURRENT_MODE_SYMBOL_STRING","CONTEXT_NUMBER","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","OPAQUE_ID_NUMBER","OPAQUE_ID_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","enableProfilerChangedHookIndices","isInternalFacebookBuild","is","objectIs","getFiberFlags","fiber","flags","effectTag","getInternalReactConstants","ReactTypeOfSideEffect","DidCapture","NoFlags","PerformedWork","Placement","Incomplete","ReactPriorityLevels","ImmediatePriority","UserBlockingPriority","NormalPriority","LowPriority","IdlePriority","NoPriority","ReactTypeOfWork","CacheComponent","ClassComponent","CoroutineComponent","CoroutineHandlerPhase","DehydratedSuspenseComponent","FunctionComponent","HostComponent","HostPortal","HostRoot","HostText","IncompleteClassComponent","IndeterminateComponent","LazyComponent","LegacyHiddenComponent","MemoComponent","Mode","OffscreenComponent","ScopeComponent","SimpleMemoComponent","SuspenseComponent","SuspenseListComponent","YieldComponent","getTypeSymbol","symbolOrNumber","resolveFiberType","typeSymbol","getDisplayNameForFiber","resolvedType","resolvedContext","attach","reconcilerVersion","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","scheduleRefresh","setErrorHandler","setSuspenseHandler","scheduleUpdate","supportsTogglingError","supportsTogglingSuspense","fibersWithChangedErrorOrWarningCounts","pendingFiberToErrorsMap","pendingFiberToWarningsMap","fiberIDToErrorsMap","fiberIDToWarningsMap","clearErrorsAndWarnings","idToArbitraryFiberMap","updateMostRecentlyInspectedElementIfNecessary","flushPendingEvents","clearMessageCountHelper","fiberID","pendingFiberToMessageCountMap","fiberIDToMessageCountMap","clearErrorsForFiberID","clearWarningsForFiberID","mostRecentlyInspectedElement","hasElementUpdatedSinceLastInspected","onErrorOrWarning","maybeID","getFiberIDUnsafe","forceErrorForFiberIDs","fiberMap","messageMap","flushPendingErrorsAndWarningsAfterDelay","registerRendererWithConsole","appendComponentStack","__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__","breakOnConsoleErrors","__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__","showInlineWarningsAndErrors","__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__","patchConsole","parentFiber","extraString","parentDisplayName","maybeParentID","groupCollapsed","groupEnd","hideElementsWithDisplayNames","hideElementsWithPaths","hideElementsWithTypes","traceUpdatesEnabled","traceUpdatesForNodes","applyComponentFilters","componentFilter","isValid","__REACT_DEVTOOLS_COMPONENT_FILTERS__","updateComponentFilters","isProfiling","getFiberRoots","currentRootID","getOrGenerateFiberID","pushOperation","rootDisplayNameCounter","setRootPseudoKey","mountFiberRecursively","reevaluateErrorsAndWarnings","shouldFilterFiber","_debugSource","getElementTypeForFiber","displayNameRegExp","pathRegExp","fiberToIDMap","idToTreeBaseDurationMap","idToRootMap","alternate","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","areHookInputsEqual","nextDeps","prevDeps","isEffect","deps","didHookChange","prevMemoizedState","nextMemoizedState","changedKeys","didFiberRender","pendingOperations","pendingRealUnmountedIDs","pendingSimulatedUnmountedIDs","pendingOperationsQueue","pendingStringTable","pendingStringTableLength","pendingUnmountedRootID","__DEV__","flushOrQueueOperations","flushPendingErrorsAndWarningsAfterDelayTimeoutID","clearPendingErrorsAndWarningsAfterDelay","recordPendingErrorsAndWarnings","countMap","mergeMapsAndGetCountHelper","newCount","messageCountMap","pendingMessageCountMap","refinedMessageCountMap","pendingCount","previousCount","errorCount","warningCount","numUnmountIDs","encodedKey","getStringID","existingID","stringID","recordMount","isRoot","hasOwnerMetadata","isProfilingSupported","displayNamesByRootID","getDisplayNameForRoot","_debugOwner","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","currentCommitProfilingMetadata","durations","maxActualDuration","recordChangeDescriptions","changeDescription","changeDescriptions","recordResetChildren","childSet","nextChildren","findReorderedChildrenRecursively","updateFiberRecursively","shouldResetChildren","prevDidTimeout","nextDidTimeOut","nextFiberChild","nextFallbackChildSet","prevFiberChild","prevFallbackChildSet","nextPrimaryChildSet","nextChild","prevChildAtSameIndex","prevChild","hostFibers","findAllCurrentHostFibers","hostFiber","nextChildSet","rootSupportsProfiling","memoizedInteractions","flushInitialOperations","localPendingOperationsQueue","trackedPath","mightBeOnTrackedPath","commitTime","profilingStartTime","priorityLevel","updaters","getUpdatersList","memoizedUpdaters","fiberToSerializedElement","handleCommitFiberUnmount","handlePostCommitFiberRoot","handleCommitFiberRoot","formatPriorityLevel","wasMounted","removeRootPseudoKey","commitProfilingMetadata","rootToCommitProfilingMetadataMap","fibers","findCurrentFiberUsingSlowPathById","maybeFallbackFiber","hostInstance","findNearestUnfilteredAncestor","findFiberByHostInstance","MOUNTING","MOUNTED","UNMOUNTED","isFiberMountedImpl","prevNode","parentA","parentB","nextParent","didFindChild","prepareViewAttributeSource","isMostRecentlyInspectedElement","$attribute","prepareViewElementSource","$type","getOwnersList","owners","owner","getInstanceAndStyle","isErrorBoundary","getDerivedStateFromError","componentDidCatch","getNearestErrorBoundaryID","inspectElementRaw","usesHooks","showState","canViewSource","shouldHideContext","contextTypes","consumerResolvedContext","currentType","currentTypeSymbol","providerResolvedContext","hasLegacyContext","originalConsoleMethods","method","currentDispatcherRef","rootType","fiberRoot","_debugRootType","errors","warnings","isErrored","targetErrorBoundaryID","canEditHooks","canEditFunctionProps","canEditHooksAndDeletePaths","canEditHooksAndRenamePaths","canEditFunctionPropsDeletePaths","canEditFunctionPropsRenamePaths","canToggleError","canToggleSuspense","forceFallbackForSuspenseIDs","entries","rendererPackageName","rendererVersion","currentlyInspectedPaths","isMostRecentlyInspectedElementCurrent","mergeInspectedPaths","createIsPathAllowed","secondaryCategory","updateSelectedElement","inspectedElement","$r","storeAsGlobal","copyElementPath","inspectElement","requestID","responseID","cleanedInspectedElement","logElementToConsole","supportsGroup","nativeNodes","chrome","navigator","userAgent","deletePath","hookID","pendingProps","renamePath","overrideValueAtPath","initialTreeBaseDurationsMap","initialIDToRootMap","getProfilingData","dataForRoots","commitData","initialTreeBaseDurations","commitProfilingData","commitIndex","fiberActualDurations","fiberSelfDurations","duration","timestamp","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","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","__reactDisabledLog","disableLogs","info","group","writable","reenableLogs","describeBuiltInComponentFrame","ownerFn","reentry","componentFrameCache","describeNativeComponentFrame","construct","control","previousPrepareStackTrace","prepareStackTrace","previousDispatcher","Fake","defineProperty","Reflect","sample","sampleLines","controlLines","syntheticFrame","describeClassComponentFrame","ctor","describeFunctionComponentFrame","shouldConstruct","describeUnknownElementTypeFrameInDEV","lazyComponent","payload","init","describeFiber","workTagMap","workInProgress","getStackByFiberInDevAndProd","APPEND_STACK_TO_METHODS","PREFIX_REGEX","ROW_COLUMN_NUMBER_REGEX","isStringComponentStack","injectedRenderers","targetConsole","targetConsoleMethods","unpatchFn","dangerous_setTargetConsoleForTesting","targetConsoleForTesting","registerRenderer","getCurrentFiber","consoleSettingsRef","originalMethod","overrideMethod","shouldAppendWarningStack","lastArg","alreadyHasComponentStack","shouldShowInlineWarningsAndErrors","componentStack","__REACT_DEVTOOLS_ORIGINAL_METHOD__","__REACT_DEVTOOLS_OVERRIDE_METHOD__","unpatch","BATCH_DURATION","BRIDGE_PROTOCOL","minNpmVersion","maxNpmVersion","currentBridgeProtocol","Bridge","wall","_timeoutID","_messageQueue","_wall","_flush","wasForwarded","_wallUnlisten","listen","_isShutdown","wallUnlisten","methodName","Agent","_rendererInterfaces","_bridge","_isProfiling","_persistedSelectionMatch","_persistedSelection","_throttledPersistSelection","_traceUpdatesEnabled","selectNode","_recordChangeDescriptions","unpatchConsole","prevMatch","nextMatch","prevMatchID","nextMatchID","persistedSelectionString","getBridgeProtocol","getProfilingStatus","reloadAndProfile","syncSelectionFromNativeElementsPanel","shutdown","updateConsolePatchSettings","viewAttributeSource","viewElementSource","overrideContext","overrideState","isBackendStorageAPISupported","setupTraceUpdates","selection","installHook","detectReactBuildType","bundleType","Mount","_renderNewRootComponent","renderRootCode","checkDCE","code","hasDetectedBadDCE","inject","renderers","reactBuildType","__REACT_DEVTOOLS_ATTACH__","sub","roots","fiberRoots","onCommitFiberUnmount","onCommitFiberRoot","mountedRoots","isKnownRoot","isUnmounting","onPostCommitFiberRoot","supportsFiber","decorate","old","decorateMany","fns","olds","restoreMany","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","currentlyInspectedElementID","_instance","nativeNode","enabled","initBackend","subs","setRendererInterface","onUnsupportedRenderer","onFastRefreshScheduled","onHookOperations","onTraceUpdates","attachRenderer","attachLegacy","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","lastLength","savedComponentFilters","connectToDevTools","host","nativeStyleEditorValidAttributes","useHttps","port","websocket","resolveRNStyle","retryConnectionDelay","isAppActive","protocol","retryTimeoutID","scheduleRetry","messageListeners","uri","ws","WebSocket","onclose","handleClose","onerror","handleFailed","handleMessage","onopen","transferable","readyState","OPEN","lazyResolveRNStyle","lazyNativeStyleEditorValidAttributes","initAfterTick"],"mappings":"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","file":"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})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 19);\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","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\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","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\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","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 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.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (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(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\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\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const 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 const node = this[CACHE].get(key)\n const 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 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 const 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\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const 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 const 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\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let 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 const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const 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\nclass Entry {\n constructor (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}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","// Import support https://stackoverflow.com/questions/13673346/supporting-both-commonjs-and-amd\n(function(name, definition) {\n if (typeof module !== \"undefined\") { module.exports = definition(); }\n else if (typeof define === \"function\" && typeof define.amd === \"object\") { define(definition); }\n else { this[name] = definition(); }\n}(\"clipboard\", function() {\n if (typeof document === 'undefined' || !document.addEventListener) {\n return null;\n }\n\n var clipboard = {};\n\n clipboard.copy = (function() {\n var _intercept = false;\n var _data = null; // Map from data type (e.g. \"text/html\") to value.\n var _bogusSelection = false;\n\n function cleanup() {\n _intercept = false;\n _data = null;\n if (_bogusSelection) {\n window.getSelection().removeAllRanges();\n }\n _bogusSelection = false;\n }\n\n document.addEventListener(\"copy\", function(e) {\n if (_intercept) {\n for (var key in _data) {\n e.clipboardData.setData(key, _data[key]);\n }\n e.preventDefault();\n }\n });\n\n // Workaround for Safari: https://bugs.webkit.org/show_bug.cgi?id=156529\n function bogusSelect() {\n var sel = document.getSelection();\n // If \"nothing\" is selected...\n if (!document.queryCommandEnabled(\"copy\") && sel.isCollapsed) {\n // ... temporarily select the entire body.\n //\n // We select the entire body because:\n // - it's guaranteed to exist,\n // - it works (unlike, say, document.head, or phantom element that is\n // not inserted into the DOM),\n // - it doesn't seem to flicker (due to the synchronous copy event), and\n // - it avoids modifying the DOM (can trigger mutation observers).\n //\n // Because we can't do proper feature detection (we already checked\n // document.queryCommandEnabled(\"copy\") , which actually gives a false\n // negative for Blink when nothing is selected) and UA sniffing is not\n // reliable (a lot of UA strings contain \"Safari\"), this will also\n // happen for some browsers other than Safari. :-()\n var range = document.createRange();\n range.selectNodeContents(document.body);\n sel.removeAllRanges();\n sel.addRange(range);\n _bogusSelection = true;\n }\n };\n\n return function(data) {\n return new Promise(function(resolve, reject) {\n _intercept = true;\n if (typeof data === \"string\") {\n _data = {\"text/plain\": data};\n } else if (data instanceof Node) {\n _data = {\"text/html\": new XMLSerializer().serializeToString(data)};\n } else if (data instanceof Object){\n _data = data;\n } else {\n reject(\"Invalid data type. Must be string, DOM node, or an object mapping MIME types to strings.\")\n }\n\n function triggerCopy(tryBogusSelect) {\n try {\n if (document.execCommand(\"copy\")) {\n // document.execCommand is synchronous: http://www.w3.org/TR/2015/WD-clipboard-apis-20150421/#integration-with-rich-text-editing-apis\n // So we can call resolve() back here.\n cleanup();\n resolve();\n }\n else {\n if (!tryBogusSelect) {\n bogusSelect();\n triggerCopy(true);\n } else {\n cleanup();\n throw new Error(\"Unable to copy. Perhaps it's not available in your browser?\");\n }\n }\n } catch (e) {\n cleanup();\n reject(e);\n }\n }\n triggerCopy(false);\n\n });\n };\n })();\n\n clipboard.paste = (function() {\n var _intercept = false;\n var _resolve;\n var _dataType;\n\n document.addEventListener(\"paste\", function(e) {\n if (_intercept) {\n _intercept = false;\n e.preventDefault();\n var resolve = _resolve;\n _resolve = null;\n resolve(e.clipboardData.getData(_dataType));\n }\n });\n\n return function(dataType) {\n return new Promise(function(resolve, reject) {\n _intercept = true;\n _resolve = resolve;\n _dataType = dataType || \"text/plain\";\n try {\n if (!document.execCommand(\"paste\")) {\n _intercept = false;\n reject(new Error(\"Unable to paste. Pasting only works in Internet Explorer at the moment.\"));\n }\n } catch (e) {\n _intercept = false;\n reject(new Error(e));\n }\n });\n };\n })();\n\n // Handle IE behaviour.\n if (typeof ClipboardEvent === \"undefined\" &&\n typeof window.clipboardData !== \"undefined\" &&\n typeof window.clipboardData.setData !== \"undefined\") {\n\n /*! promise-polyfill 2.0.1 */\n (function(a){function b(a,b){return function(){a.apply(b,arguments)}}function c(a){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof a)throw new TypeError(\"not a function\");this._state=null,this._value=null,this._deferreds=[],i(a,b(e,this),b(f,this))}function d(a){var b=this;return null===this._state?void this._deferreds.push(a):void j(function(){var c=b._state?a.onFulfilled:a.onRejected;if(null===c)return void(b._state?a.resolve:a.reject)(b._value);var d;try{d=c(b._value)}catch(e){return void a.reject(e)}a.resolve(d)})}function e(a){try{if(a===this)throw new TypeError(\"A promise cannot be resolved with itself.\");if(a&&(\"object\"==typeof a||\"function\"==typeof a)){var c=a.then;if(\"function\"==typeof c)return void i(b(c,a),b(e,this),b(f,this))}this._state=!0,this._value=a,g.call(this)}catch(d){f.call(this,d)}}function f(a){this._state=!1,this._value=a,g.call(this)}function g(){for(var a=0,b=this._deferreds.length;b>a;a++)d.call(this,this._deferreds[a]);this._deferreds=null}function h(a,b,c,d){this.onFulfilled=\"function\"==typeof a?a:null,this.onRejected=\"function\"==typeof b?b:null,this.resolve=c,this.reject=d}function i(a,b,c){var d=!1;try{a(function(a){d||(d=!0,b(a))},function(a){d||(d=!0,c(a))})}catch(e){if(d)return;d=!0,c(e)}}var j=c.immediateFn||\"function\"==typeof setImmediate&&setImmediate||function(a){setTimeout(a,1)},k=Array.isArray||function(a){return\"[object Array]\"===Object.prototype.toString.call(a)};c.prototype[\"catch\"]=function(a){return this.then(null,a)},c.prototype.then=function(a,b){var e=this;return new c(function(c,f){d.call(e,new h(a,b,c,f))})},c.all=function(){var a=Array.prototype.slice.call(1===arguments.length&&k(arguments[0])?arguments[0]:arguments);return new c(function(b,c){function d(f,g){try{if(g&&(\"object\"==typeof g||\"function\"==typeof g)){var h=g.then;if(\"function\"==typeof h)return void h.call(g,function(a){d(f,a)},c)}a[f]=g,0===--e&&b(a)}catch(i){c(i)}}if(0===a.length)return b([]);for(var e=a.length,f=0;f<a.length;f++)d(f,a[f])})},c.resolve=function(a){return a&&\"object\"==typeof a&&a.constructor===c?a:new c(function(b){b(a)})},c.reject=function(a){return new c(function(b,c){c(a)})},c.race=function(a){return new c(function(b,c){for(var d=0,e=a.length;e>d;d++)a[d].then(b,c)})},\"undefined\"!=typeof module&&module.exports?module.exports=c:a.Promise||(a.Promise=c)})(this);\n\n clipboard.copy = function(data) {\n return new Promise(function(resolve, reject) {\n // IE supports string and URL types: https://msdn.microsoft.com/en-us/library/ms536744(v=vs.85).aspx\n // We only support the string type for now.\n if (typeof data !== \"string\" && !(\"text/plain\" in data)) {\n throw new Error(\"You must provide a text/plain type.\");\n }\n\n var strData = (typeof data === \"string\" ? data : data[\"text/plain\"]);\n var copySucceeded = window.clipboardData.setData(\"Text\", strData);\n if (copySucceeded) {\n resolve();\n } else {\n reject(new Error(\"Copying was rejected.\"));\n }\n });\n };\n\n clipboard.paste = function() {\n return new Promise(function(resolve, reject) {\n var strData = window.clipboardData.getData(\"Text\");\n if (strData) {\n resolve(strData);\n } else {\n // The user rejected the paste request.\n reject(new Error(\"Pasting was rejected.\"));\n }\n });\n };\n }\n\n return clipboard;\n}));\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","'use strict'\nmodule.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 return next\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.splice = function (start, deleteCount /*, ...nodes */) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 2; i < arguments.length; i++) {\n walker = insert(this, walker, arguments[i])\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 insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\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\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","/** @license React vundefined\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, 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'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60129,r=60130,u=60131,v=60132;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;b=w(\"react.element\");c=w(\"react.portal\");d=w(\"react.fragment\");e=w(\"react.strict_mode\");f=w(\"react.profiler\");g=w(\"react.provider\");h=w(\"react.context\");k=w(\"react.forward_ref\");l=w(\"react.suspense\");m=w(\"react.suspense_list\");n=w(\"react.memo\");p=w(\"react.lazy\");q=w(\"react.debug_trace_mode\");r=w(\"react.offscreen\");u=w(\"react.legacy_hidden\");v=w(\"react.cache\")}var x=0;\"function\"===typeof Symbol&&(x=Symbol.for(\"react.module.reference\"));\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l,J=m;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;\nexports.StrictMode=H;exports.Suspense=I;exports.SuspenseList=J;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};\nexports.isMemo=function(a){return y(a)===n};exports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isSuspenseList=function(a){return y(a)===m};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===q||a===e||a===l||a===m||a===u||a===r||a===v||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===x||void 0!==a.getModuleId)?!0:!1};exports.typeOf=y;\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","/** @license React vundefined\n * react-debug-tools.production.min.js\n *\n * Copyright (c) Facebook, 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'use strict';var k=require(\"object-assign\"),p=require(\"error-stack-parser\");function r(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,e=1;e<arguments.length;e++)b+=\"&args[]=\"+encodeURIComponent(arguments[e]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var w=require(\"react\").__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=60128;\nif(\"function\"===typeof Symbol&&Symbol.for){var y=Symbol.for;x=y(\"react.opaque.id\")}var z=[],A=null,B=null;\nfunction C(){if(null===A){var a=new Map;try{D.useContext({_currentValue:null}),D.useState(null),D.useReducer(function(a){return a},null),D.useRef(null),\"function\"===typeof D.useCacheRefresh&&D.useCacheRefresh(),D.useLayoutEffect(function(){}),D.useEffect(function(){}),D.useImperativeHandle(void 0,function(){return null}),D.useDebugValue(null),D.useCallback(function(){}),D.useMemo(function(){return null})}finally{var b=z;z=[]}for(var e=0;e<b.length;e++){var f=b[e];a.set(f.primitive,p.parse(f.stackError))}A=\na}return A}var E=null;function F(){var a=E;null!==a&&(E=a.next);return a}\nvar D={getCacheForType:function(){throw Error(r(248));},readContext:function(a){return a._currentValue},useCacheRefresh:function(){var a=F();z.push({primitive:\"CacheRefresh\",stackError:Error(),value:null!==a?a.memoizedState:function(){}});return function(){}},useCallback:function(a){var b=F();z.push({primitive:\"Callback\",stackError:Error(),value:null!==b?b.memoizedState[0]:a});return a},useContext:function(a){z.push({primitive:\"Context\",stackError:Error(),value:a._currentValue});return a._currentValue},\nuseEffect:function(a){F();z.push({primitive:\"Effect\",stackError:Error(),value:a})},useImperativeHandle:function(a){F();var b=void 0;null!==a&&\"object\"===typeof a&&(b=a.current);z.push({primitive:\"ImperativeHandle\",stackError:Error(),value:b})},useDebugValue:function(a,b){z.push({primitive:\"DebugValue\",stackError:Error(),value:\"function\"===typeof b?b(a):a})},useLayoutEffect:function(a){F();z.push({primitive:\"LayoutEffect\",stackError:Error(),value:a})},useMemo:function(a){var b=F();a=null!==b?b.memoizedState[0]:\na();z.push({primitive:\"Memo\",stackError:Error(),value:a});return a},useReducer:function(a,b,e){a=F();b=null!==a?a.memoizedState:void 0!==e?e(b):b;z.push({primitive:\"Reducer\",stackError:Error(),value:b});return[b,function(){}]},useRef:function(a){var b=F();a=null!==b?b.memoizedState:{current:a};z.push({primitive:\"Ref\",stackError:Error(),value:a.current});return a},useState:function(a){var b=F();a=null!==b?b.memoizedState:\"function\"===typeof a?a():a;z.push({primitive:\"State\",stackError:Error(),value:a});\nreturn[a,function(){}]},useTransition:function(){F();F();z.push({primitive:\"Transition\",stackError:Error(),value:void 0});return[!1,function(){}]},useMutableSource:function(a,b){F();F();F();F();a=b(a._source);z.push({primitive:\"MutableSource\",stackError:Error(),value:a});return a},useDeferredValue:function(a){F();F();z.push({primitive:\"DeferredValue\",stackError:Error(),value:a});return a},useOpaqueIdentifier:function(){var a=F();B&&0===B.mode&&F();(a=null===a?void 0:a.memoizedState)&&a.$$typeof===\nx&&(a=void 0);z.push({primitive:\"OpaqueIdentifier\",stackError:Error(),value:a});return a}},G=0;function H(a,b,e){var f=b[e].source,c=0;a:for(;c<a.length;c++)if(a[c].source===f){for(var l=e+1,q=c+1;l<b.length&&q<a.length;l++,q++)if(a[q].source!==b[l].source)continue a;return c}return-1}function I(a,b){if(!a)return!1;b=\"use\"+b;return a.length<b.length?!1:a.lastIndexOf(b)===a.length-b.length}\nfunction J(a,b,e){for(var f=[],c=null,l=f,q=0,t=[],v=0;v<b.length;v++){var u=b[v];var d=a;var h=p.parse(u.stackError);b:{var m=h,n=H(m,d,G);if(-1!==n)d=n;else{for(var g=0;g<d.length&&5>g;g++)if(n=H(m,d,g),-1!==n){G=g;d=n;break b}d=-1}}b:{m=h;n=C().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&&I(m[g].functionName,u.primitive)&&g++;g<m.length-1&&I(m[g].functionName,u.primitive)&&g++;m=g;break b}m=-1}h=-1===d||-1===m||2>d-m?null:h.slice(m,\nd-1);if(null!==h){d=0;if(null!==c){for(;d<h.length&&d<c.length&&h[h.length-d-1].source===c[c.length-d-1].source;)d++;for(c=c.length-1;c>d;c--)l=t.pop()}for(c=h.length-d-1;1<=c;c--)d=[],m=h[c],(n=h[c-1].functionName)?(g=n.lastIndexOf(\".\"),-1===g&&(g=0),\"use\"===n.substr(g,3)&&(g+=3),n=n.substr(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}),l.push(n),t.push(l),\nl=d;c=h}d=u.primitive;u={id:\"Context\"===d||\"DebugValue\"===d?null:q++,isStateEditable:\"Reducer\"===d||\"State\"===d,name:d,value:u.value,subHooks:[]};e&&(d={lineNumber:null,functionName:null,fileName:null,columnNumber:null},h&&1<=h.length&&(h=h[0],d.lineNumber=h.lineNumber,d.functionName=h.functionName,d.fileName=h.fileName,d.columnNumber=h.columnNumber),u.hookSource=d);l.push(u)}K(f,null);return f}\nfunction K(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)):K(c.subHooks,c)}null!==b&&(1===e.length?b.value=e[0].value:1<e.length&&(b.value=e.map(function(a){return a.value})))}function 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=D;try{var l=Error();a(b)}finally{var q=z;z=[];e.current=c}c=p.parse(l);return J(c,q,f)}\nfunction M(a){a.forEach(function(a,e){return e._currentValue=a})}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);B=a;if(0!==a.tag&&15!==a.tag&&11!==a.tag)throw Error(\"Unknown Fiber. Needs to be a function component to inspect hooks.\");C();var f=a.type,c=a.memoizedProps;if(f!==a.elementType&&f&&f.defaultProps){c=k({},c);var l=f.defaultProps;for(q in l)void 0===c[q]&&(c[q]=l[q])}E=a.memoizedState;var q=new Map;try{for(l=a;l;){if(10===l.tag){var t=l.type._context;q.has(t)||\n(q.set(t,t._currentValue),t._currentValue=l.memoizedProps.value)}l=l.return}if(11===a.tag){var v=f.render;f=c;var u=a.ref;t=b;var d=t.current;t.current=D;try{var h=Error();v(f,u)}finally{var m=z;z=[];t.current=d}var n=p.parse(h);return J(n,m,e)}return L(f,c,b,e)}finally{E=null,M(q)}};\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","(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","'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","/** @license React vundefined\n * react.production.min.js\n *\n * Copyright (c) Facebook, 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'use strict';var l=require(\"object-assign\"),m=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;exports.SuspenseList=60120;var u=60115,v=60116;exports.unstable_DebugTracingMode=60129;exports.unstable_Offscreen=60130;exports.unstable_LegacyHidden=60131;exports.unstable_Cache=60132;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;m=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");exports.SuspenseList=w(\"react.suspense_list\");u=w(\"react.memo\");v=w(\"react.lazy\");exports.unstable_DebugTracingMode=w(\"react.debug_trace_mode\");exports.unstable_Offscreen=w(\"react.offscreen\");\nexports.unstable_LegacyHidden=w(\"react.legacy_hidden\");exports.unstable_Cache=w(\"react.cache\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;function y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nfunction z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};\nfunction C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;\nF.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G=Array.isArray,H=Object.prototype.hasOwnProperty,I={current:null},J={key:!0,ref:!0,__self:!0,__source:!0};\nfunction K(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!J.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),n=0;n<g;n++)f[n]=arguments[n+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:m,type:a,key:k,ref:h,props:d,_owner:I.current}}\nfunction L(a,b){return{$$typeof:m,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function M(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===m}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var N=/\\/+/g;function O(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction P(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case m:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+O(h,0):e,G(d)?(c=\"\",null!=a&&(c=a.replace(N,\"$&/\")+\"/\"),P(d,b,c,\"\",function(a){return a})):null!=d&&(M(d)&&(d=L(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(N,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(G(a))for(var g=0;g<a.length;g++){k=\na[g];var f=e+O(k,g);h+=P(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+O(k,g++),h+=P(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function Q(a,b,c){if(null==a)return a;var e=[],d=0;P(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction R(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}var S={current:null},T={transition:0},U={ReactCurrentDispatcher:S,ReactCurrentBatchConfig:T,ReactCurrentOwner:I,assign:l};\nexports.Children={map:Q,forEach:function(a,b,c){Q(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;Q(a,function(){b++});return b},toArray:function(a){return Q(a,function(a){return a})||[]},only:function(a){if(!M(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=U;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=I.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!J.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var n=0;n<f;n++)g[n]=arguments[n+2];e.children=g}return{$$typeof:m,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a){a={$$typeof:r,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=K;exports.createFactory=function(a){var b=K.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=M;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:R}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=T.transition;T.transition=1;try{a()}finally{T.transition=b}};exports.unstable_act=function(){throw Error(z(406));};exports.unstable_createMutableSource=function(a,b){return{_getVersion:b,_source:a,_workInProgressVersionPrimary:null,_workInProgressVersionSecondary:null}};\nexports.unstable_getCacheForType=function(a){return S.current.getCacheForType(a)};exports.unstable_useCacheRefresh=function(){return S.current.useCacheRefresh()};exports.unstable_useMutableSource=function(a,b,c){return S.current.useMutableSource(a,b,c)};exports.unstable_useOpaqueIdentifier=function(){return S.current.useOpaqueIdentifier()};exports.useCallback=function(a,b){return S.current.useCallback(a,b)};exports.useContext=function(a){return S.current.useContext(a)};exports.useDebugValue=function(){};\nexports.useDeferredValue=function(a){return S.current.useDeferredValue(a)};exports.useEffect=function(a,b){return S.current.useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S.current.useImperativeHandle(a,b,c)};exports.useLayoutEffect=function(a,b){return S.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S.current.useMemo(a,b)};exports.useReducer=function(a,b,c){return S.current.useReducer(a,b,c)};exports.useRef=function(a){return S.current.useRef(a)};\nexports.useState=function(a){return S.current.useState(a)};exports.useTransition=function(){return S.current.useTransition()};exports.version=\"18.0.0-experimental-c6f2188ed-20210811\";\n","/**\n * Copyright (c) Facebook, 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\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) Facebook, 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\n// Flip this flag to true to enable verbose console debug logging.\nexport const __DEBUG__ = 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;\n\nexport const LOCAL_STORAGE_FILTER_PREFERENCES_KEY =\n 'React::DevTools::componentFilters';\n\nexport const SESSION_STORAGE_LAST_SELECTION_KEY =\n 'React::DevTools::lastSelection';\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_SHOULD_PATCH_CONSOLE_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 PROFILER_EXPORT_VERSION = 5;\n\nexport 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-scheduling-profiler-native-event': '#ccc',\n '--color-scheduling-profiler-native-event-hover': '#aaa',\n '--color-scheduling-profiler-priority-background': '#f6f6f6',\n '--color-scheduling-profiler-priority-border': '#eeeeee',\n '--color-scheduling-profiler-user-timing': '#c9cacd',\n '--color-scheduling-profiler-user-timing-hover': '#93959a',\n '--color-scheduling-profiler-react-idle': '#d3e5f6',\n '--color-scheduling-profiler-react-idle-hover': '#c3d9ef',\n '--color-scheduling-profiler-react-render': '#9fc3f3',\n '--color-scheduling-profiler-react-render-hover': '#83afe9',\n '--color-scheduling-profiler-react-render-text': '#11365e',\n '--color-scheduling-profiler-react-commit': '#c88ff0',\n '--color-scheduling-profiler-react-commit-hover': '#b281d6',\n '--color-scheduling-profiler-react-commit-text': '#3e2c4a',\n '--color-scheduling-profiler-react-layout-effects': '#b281d6',\n '--color-scheduling-profiler-react-layout-effects-hover': '#9d71bd',\n '--color-scheduling-profiler-react-layout-effects-text': '#3e2c4a',\n '--color-scheduling-profiler-react-passive-effects': '#b281d6',\n '--color-scheduling-profiler-react-passive-effects-hover': '#9d71bd',\n '--color-scheduling-profiler-react-passive-effects-text': '#3e2c4a',\n '--color-scheduling-profiler-react-schedule': '#9fc3f3',\n '--color-scheduling-profiler-react-schedule-hover': '#2683E2',\n '--color-scheduling-profiler-react-suspense-rejected': '#f1cc14',\n '--color-scheduling-profiler-react-suspense-rejected-hover': '#ffdf37',\n '--color-scheduling-profiler-react-suspense-resolved': '#a6e59f',\n '--color-scheduling-profiler-react-suspense-resolved-hover': '#89d281',\n '--color-scheduling-profiler-react-suspense-unresolved': '#c9cacd',\n '--color-scheduling-profiler-react-suspense-unresolved-hover': '#93959a',\n '--color-scheduling-profiler-text-color': '#000000',\n '--color-scheduling-profiler-text-dim-color': '#ccc',\n '--color-scheduling-profiler-react-work-border': '#ffffff',\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-scheduling-profiler-native-event': '#b2b2b2',\n '--color-scheduling-profiler-native-event-hover': '#949494',\n '--color-scheduling-profiler-priority-background': '#1d2129',\n '--color-scheduling-profiler-priority-border': '#282c34',\n '--color-scheduling-profiler-user-timing': '#c9cacd',\n '--color-scheduling-profiler-user-timing-hover': '#93959a',\n '--color-scheduling-profiler-react-idle': '#3d485b',\n '--color-scheduling-profiler-react-idle-hover': '#465269',\n '--color-scheduling-profiler-react-render': '#2683E2',\n '--color-scheduling-profiler-react-render-hover': '#1a76d4',\n '--color-scheduling-profiler-react-render-text': '#11365e',\n '--color-scheduling-profiler-react-commit': '#731fad',\n '--color-scheduling-profiler-react-commit-hover': '#611b94',\n '--color-scheduling-profiler-react-commit-text': '#e5c1ff',\n '--color-scheduling-profiler-react-layout-effects': '#611b94',\n '--color-scheduling-profiler-react-layout-effects-hover': '#51167a',\n '--color-scheduling-profiler-react-layout-effects-text': '#e5c1ff',\n '--color-scheduling-profiler-react-passive-effects': '#611b94',\n '--color-scheduling-profiler-react-passive-effects-hover': '#51167a',\n '--color-scheduling-profiler-react-passive-effects-text': '#e5c1ff',\n '--color-scheduling-profiler-react-schedule': '#2683E2',\n '--color-scheduling-profiler-react-schedule-hover': '#1a76d4',\n '--color-scheduling-profiler-react-suspense-rejected': '#f1cc14',\n '--color-scheduling-profiler-react-suspense-rejected-hover': '#e4c00f',\n '--color-scheduling-profiler-react-suspense-resolved': '#a6e59f',\n '--color-scheduling-profiler-react-suspense-resolved-hover': '#89d281',\n '--color-scheduling-profiler-react-suspense-unresolved': '#c9cacd',\n '--color-scheduling-profiler-react-suspense-unresolved-hover': '#93959a',\n '--color-scheduling-profiler-text-color': '#282c34',\n '--color-scheduling-profiler-text-dim-color': '#555b66',\n '--color-scheduling-profiler-react-work-border': '#ffffff',\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 = parseInt(\n THEME_STYLES.comfortable['--line-height-data'],\n 10,\n);\nconst COMPACT_LINE_HEIGHT = parseInt(\n THEME_STYLES.compact['--line-height-data'],\n 10,\n);\n\nexport {COMFORTABLE_LINE_HEIGHT, COMPACT_LINE_HEIGHT};\n","/**\n * Copyright (c) Facebook, 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\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) Facebook, 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\nexport type Rect = {\n bottom: number,\n height: number,\n left: number,\n right: number,\n top: number,\n width: number,\n ...\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) {\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 typechecks 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 = [node.getBoundingClientRect()];\n let currentIframe = 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 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) Facebook, 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 assign from 'object-assign';\nimport {getElementDimensions, getNestedBoundingClientRect} from '../utils';\n\nimport type {DevToolsHook} from 'react-devtools-shared/src/backend/types';\nimport type {Rect} from '../utils';\n\ntype Box = {|top: number, left: number, width: number, height: number|};\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: window;\n tipBoundsWindow: window;\n container: HTMLElement;\n tip: OverlayTip;\n rects: Array<OverlayRect>;\n\n constructor() {\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 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 hook: DevToolsHook =\n node.ownerDocument.defaultView.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (hook != null && hook.rendererInterfaces != null) {\n let ownerName = null;\n // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n for (const rendererInterface of hook.rendererInterfaces.values()) {\n const id = rendererInterface.getFiberIDForNative(node, true);\n if (id !== null) {\n ownerName = rendererInterface.getDisplayNameForFiberID(id, true);\n break;\n }\n }\n\n if (ownerName) {\n name += ' (in ' + ownerName + ')';\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(dims, bounds, tipSize) {\n const tipHeight = Math.max(tipSize.height, 20);\n const tipWidth = Math.max(tipSize.width, 60);\n const margin = 5;\n\n let top;\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 = 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, what, node) {\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) Facebook, 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 Overlay from './Overlay';\n\nconst SHOW_DURATION = 2000;\n\nlet timeoutID: TimeoutID | null = null;\nlet overlay: Overlay | null = null;\n\nexport function hideOverlay() {\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 hideAfterTimeout: boolean,\n) {\n // TODO (npm-packages) Detect RN and support it somehow\n if (window.document == null) {\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();\n }\n\n overlay.inspect(elements, componentName);\n\n if (hideAfterTimeout) {\n timeoutID = setTimeout(hideOverlay, SHOW_DURATION);\n }\n}\n","/**\n * Copyright (c) Facebook, 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 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) {\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('pointerover', onPointerOver, true);\n window.addEventListener('pointerup', onPointerUp, true);\n }\n }\n\n function stopInspectingNative() {\n hideOverlay();\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) {\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('pointerover', onPointerOver, true);\n window.removeEventListener('pointerup', onPointerUp, true);\n }\n }\n\n function clearNativeElementHighlight() {\n hideOverlay();\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\n let nodes: ?Array<HTMLElement> = null;\n if (renderer != null) {\n nodes = ((renderer.findNativeNodesForFiberID(\n id,\n ): any): ?Array<HTMLElement>);\n }\n\n if (nodes != null && nodes[0] != null) {\n const node = nodes[0];\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 // $FlowFixMe Flow only knows about 'start' | 'end'\n node.scrollIntoView({block: 'nearest', inline: 'nearest'});\n }\n\n showOverlay(nodes, displayName, hideAfterTimeout);\n\n if (openNativeElementsPanel) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0 = node;\n bridge.send('syncSelectionToNativeElementsPanel');\n }\n } else {\n hideOverlay();\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(((event.target: any): HTMLElement));\n }\n\n function onPointerOver(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n\n const target = ((event.target: any): HTMLElement);\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, 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","/**\n * Copyright (c) Facebook, 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 {Data} from './index';\nimport type {Rect} from '../utils';\nimport type {NativeType} from '../../types';\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>): void {\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\n nodeToData.forEach(({count, rect}) => {\n if (rect !== null) {\n const colorIndex = Math.min(COLORS.length - 1, count - 1);\n const color = COLORS[colorIndex];\n\n drawBorder(context, rect, color);\n }\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(): void {\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) Facebook, 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 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 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();\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);\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 * Copyright (c) Facebook, 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\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;\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;\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 becuase 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 get: (key: K) => V,\n has: (key: K) => boolean,\n reset: () => void,\n set: (key: K, value: V) => void,\n|};\n","/**\n * Copyright (c) Facebook, 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\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. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nexport let REACT_ELEMENT_TYPE = 0xeac7;\nexport let REACT_PORTAL_TYPE = 0xeaca;\nexport let REACT_FRAGMENT_TYPE = 0xeacb;\nexport let REACT_STRICT_MODE_TYPE = 0xeacc;\nexport let REACT_PROFILER_TYPE = 0xead2;\nexport let REACT_PROVIDER_TYPE = 0xeacd;\nexport let REACT_CONTEXT_TYPE = 0xeace;\nexport let REACT_FORWARD_REF_TYPE = 0xead0;\nexport let REACT_SUSPENSE_TYPE = 0xead1;\nexport let REACT_SUSPENSE_LIST_TYPE = 0xead8;\nexport let REACT_MEMO_TYPE = 0xead3;\nexport let REACT_LAZY_TYPE = 0xead4;\nexport let REACT_SCOPE_TYPE = 0xead7;\nexport let REACT_OPAQUE_ID_TYPE = 0xeae0;\nexport let REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nexport let REACT_OFFSCREEN_TYPE = 0xeae2;\nexport let REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\nexport let REACT_CACHE_TYPE = 0xeae4;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n const symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n REACT_CACHE_TYPE = symbolFor('react.cache');\n}\n\nconst MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nconst FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nexport function getIteratorFn(maybeIterable: ?any): ?() => ?Iterator<*> {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n const maybeIterator =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[FAUX_ITERATOR_SYMBOL];\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n return null;\n}\n","/**\n * Copyright (c) Facebook, 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 {\n getDataType,\n getDisplayNameForReactElement,\n getAllEnumerableKeys,\n getInObject,\n formatDataForPreview,\n setInObject,\n} from './utils';\n\nimport type {DehydratedData} from 'react-devtools-shared/src/devtools/views/Components/types';\n\nexport const meta = {\n inspectable: Symbol('inspectable'),\n inspected: Symbol('inspected'),\n name: Symbol('name'),\n preview_long: Symbol('preview_long'),\n preview_short: Symbol('preview_short'),\n readonly: Symbol('readonly'),\n size: Symbol('size'),\n type: Symbol('type'),\n unserializable: Symbol('unserializable'),\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 ...\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):\n | string\n | Dehydrated\n | Unserializable\n | Array<Dehydrated>\n | Array<Unserializable>\n | {[key: string]: string | Dehydrated | Unserializable, ...} {\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 if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n return createDehydrated(type, true, data, cleaned, path);\n } else {\n const object = {};\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 '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 {\n type,\n };\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 [meta.inspected]: {\n configurable: true,\n enumerable: false,\n value: !!source.inspected,\n },\n [meta.name]: {\n configurable: true,\n enumerable: false,\n value: source.name,\n },\n [meta.preview_long]: {\n configurable: true,\n enumerable: false,\n value: source.preview_long,\n },\n [meta.preview_short]: {\n configurable: true,\n enumerable: false,\n value: source.preview_short,\n },\n [meta.size]: {\n configurable: true,\n enumerable: false,\n value: source.size,\n },\n [meta.readonly]: {\n configurable: true,\n enumerable: false,\n value: !!source.readonly,\n },\n [meta.type]: {\n configurable: true,\n enumerable: false,\n value: source.type,\n },\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) Facebook, 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 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 {REACT_SUSPENSE_LIST_TYPE as SuspenseList} 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_UPDATE_ERRORS_OR_WARNINGS,\n TREE_OPERATION_UPDATE_TREE_BASE_DURATION,\n} from './constants';\nimport {ElementTypeRoot} from 'react-devtools-shared/src/types';\nimport {\n LOCAL_STORAGE_FILTER_PREFERENCES_KEY,\n LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS,\n LOCAL_STORAGE_SHOULD_PATCH_CONSOLE_KEY,\n LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n} from './constants';\nimport {ComponentFilterElementType, ElementTypeHostComponent} from './types';\nimport {\n ElementTypeClass,\n ElementTypeForwardRef,\n ElementTypeFunction,\n ElementTypeMemo,\n} from 'react-devtools-shared/src/types';\nimport {localStorageGetItem, localStorageSetItem} from './storage';\nimport {meta} from './hydration';\n\nimport type {ComponentFilter, ElementType} from './types';\nimport type {LRUCache} from 'react-devtools-shared/src/types';\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();\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: 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\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 return String.fromCodePoint(...array);\n}\n\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 = new Array(string.length);\n for (let i = 0; i < string.length; i++) {\n encoded[i] = string.codePointAt(i);\n }\n encodedStringCache.set(string, encoded);\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 = [\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++; // supportsProfiling\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_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(LOCAL_STORAGE_FILTER_PREFERENCES_KEY);\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n return getDefaultComponentFilters();\n}\n\nexport function saveComponentFilters(\n componentFilters: Array<ComponentFilter>,\n): void {\n localStorageSetItem(\n LOCAL_STORAGE_FILTER_PREFERENCES_KEY,\n JSON.stringify(componentFilters),\n );\n}\n\nexport function getAppendComponentStack(): boolean {\n try {\n const raw = localStorageGetItem(LOCAL_STORAGE_SHOULD_PATCH_CONSOLE_KEY);\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n return true;\n}\n\nexport function setAppendComponentStack(value: boolean): void {\n localStorageSetItem(\n LOCAL_STORAGE_SHOULD_PATCH_CONSOLE_KEY,\n JSON.stringify(value),\n );\n}\n\nexport function getBreakOnConsoleErrors(): boolean {\n try {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS,\n );\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n return false;\n}\n\nexport function setBreakOnConsoleErrors(value: boolean): void {\n localStorageSetItem(\n LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS,\n JSON.stringify(value),\n );\n}\n\nexport function getShowInlineWarningsAndErrors(): boolean {\n try {\n const raw = localStorageGetItem(\n LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n );\n if (raw != null) {\n return JSON.parse(raw);\n }\n } catch (error) {}\n return true;\n}\n\nexport function setShowInlineWarningsAndErrors(value: boolean): void {\n localStorageSetItem(\n LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n JSON.stringify(value),\n );\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 if (type === ElementTypeMemo) {\n if (hocDisplayNames === null) {\n hocDisplayNames = ['Memo'];\n } else {\n hocDisplayNames.unshift('Memo');\n }\n } else if (type === ElementTypeForwardRef) {\n if (hocDisplayNames === null) {\n hocDisplayNames = ['ForwardRef'];\n } else {\n hocDisplayNames.unshift('ForwardRef');\n }\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 (Array.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 (Array.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 | '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 (Array.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 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 return 'object';\n case 'string':\n return 'string';\n case 'symbol':\n return 'symbol';\n case 'undefined':\n if (\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 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.substr(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 (Array.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 '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('' + data);\n } catch (error) {\n return 'unserializable';\n }\n }\n}\n","/**\n * Copyright (c) Facebook, 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\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 * Copyright (c) Facebook, 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 {copy} from 'clipboard-js';\nimport {dehydrate} from '../hydration';\nimport isArray from 'shared/isArray';\n\nimport type {DehydratedData} from 'react-devtools-shared/src/devtools/views/Components/types';\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 = [];\n const unserializablePaths = [];\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 copyToClipboard(value: any): void {\n const safeToCopy = serializeToString(value);\n const text = safeToCopy === undefined ? 'undefined' : safeToCopy;\n const {clipboardCopyText} = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n // On Firefox navigator.clipboard.writeText has to be called from\n // the content script js code (because it requires the clipboardWrite\n // permission to be allowed out of a \"user handling\" callback),\n // clipboardCopyText is an helper injected into the page from.\n // injectGlobalHook.\n if (typeof clipboardCopyText === 'function') {\n clipboardCopyText(text).catch(err => {});\n } else {\n copy(text);\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 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 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 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 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 // 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 const cache = new Set();\n // Use a custom replacer function to protect against circular references.\n return JSON.stringify(data, (key, value) => {\n if (typeof value === 'object' && value !== null) {\n if (cache.has(value)) {\n return;\n }\n cache.add(value);\n }\n // $FlowFixMe\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\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\nexport function format(\n maybeMessage: any,\n ...inputArgs: $ReadOnlyArray<any>\n): string {\n const args = inputArgs.slice();\n\n // Symbols cannot be concatenated with Strings.\n let formatted: string =\n typeof maybeMessage === 'symbol'\n ? maybeMessage.toString()\n : '' + 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 const arg = args[i];\n\n // Symbols cannot be concatenated with Strings.\n formatted += ' ' + (typeof arg === 'symbol' ? arg.toString() : arg);\n }\n }\n\n // Update escaped %% values.\n formatted = formatted.replace(/%{2,2}/g, '%');\n\n return '' + 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","/**\n * Copyright (c) Facebook, 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\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 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 OPAQUE_ID_NUMBER = 0xeae0;\nexport const OPAQUE_ID_SYMBOL_STRING = 'Symbol(react.opaque.id)';\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","/**\n * Copyright (c) Facebook, 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\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 enableProfilerChangedHookIndices = false;\nexport const isInternalFacebookBuild = false;\n","/**\n * Copyright (c) Facebook, 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\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 typeof Object.is === 'function' ? Object.is : is;\n\nexport default objectIs;\n","/**\n * Copyright (c) Facebook, 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 {gt, gte} from 'semver';\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} from 'react-devtools-shared/src/types';\nimport {\n deletePathInObject,\n getDisplayName,\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 cleanForBridge,\n copyToClipboard,\n copyWithDelete,\n copyWithRename,\n copyWithSet,\n getEffectDurations,\n} from './utils';\nimport {\n __DEBUG__,\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_UPDATE_ERRORS_OR_WARNINGS,\n TREE_OPERATION_UPDATE_TREE_BASE_DURATION,\n} from '../constants';\nimport {inspectHooksOfFiber} from 'react-debug-tools';\nimport {\n patch as patchConsole,\n registerRenderer as registerRendererWithConsole,\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} from './ReactSymbols';\nimport {format} from './utils';\nimport {enableProfilerChangedHookIndices} from 'react-devtools-feature-flags';\nimport is from 'shared/objectIs';\nimport isArray from 'shared/isArray';\n\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} 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\ntype ReactTypeOfSideEffectType = {|\n DidCapture: number,\n NoFlags: number,\n PerformedWork: number,\n Placement: number,\n Incomplete: 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 typeof performance === 'object' && typeof performance.now === 'function'\n ? () => performance.now()\n : () => Date.now();\n\nexport function getInternalReactConstants(\n version: string,\n): {|\n getDisplayNameForFiber: getDisplayNameForFiberType,\n getTypeSymbol: getTypeSymbolType,\n ReactPriorityLevels: ReactPriorityLevelsType,\n ReactTypeOfSideEffect: ReactTypeOfSideEffectType,\n ReactTypeOfWork: WorkTagMap,\n|} {\n const ReactTypeOfSideEffect: ReactTypeOfSideEffectType = {\n DidCapture: 0b10000000,\n NoFlags: 0b00,\n PerformedWork: 0b01,\n Placement: 0b10,\n Incomplete: 0b10000000000000,\n };\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 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 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 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 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 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 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 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 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 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 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 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 // $FlowFixMe Flow doesn't know about typeof \"symbol\"\n return typeof symbolOrNumber === 'symbol'\n ? symbolOrNumber.toString()\n : symbolOrNumber;\n }\n\n const {\n CacheComponent,\n ClassComponent,\n IncompleteClassComponent,\n FunctionComponent,\n IndeterminateComponent,\n ForwardRef,\n HostRoot,\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 } = ReactTypeOfWork;\n\n function resolveFiberType(type: any) {\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 // Mirror https://github.com/facebook/react/blob/7c21bf72ace77094fd1910cc350a548287ef8350/packages/shared/getComponentName.js#L27-L37\n return (\n (type && type.displayName) ||\n getDisplayName(resolvedType, 'Anonymous')\n );\n case HostRoot:\n return null;\n case HostComponent:\n return type;\n case HostPortal:\n case HostText:\n case Fragment:\n return null;\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 return (\n (elementType && elementType.displayName) ||\n (type && type.displayName) ||\n getDisplayName(resolvedType, '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 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 // 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 ReactTypeOfSideEffect,\n };\n}\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 ReactTypeOfSideEffect,\n } = getInternalReactConstants(version);\n const {\n DidCapture,\n Incomplete,\n NoFlags,\n PerformedWork,\n Placement,\n } = ReactTypeOfSideEffect;\n const {\n CacheComponent,\n ClassComponent,\n ContextConsumer,\n DehydratedSuspenseComponent,\n ForwardRef,\n Fragment,\n FunctionComponent,\n HostRoot,\n HostPortal,\n HostComponent,\n HostText,\n IncompleteClassComponent,\n IndeterminateComponent,\n LegacyHiddenComponent,\n MemoComponent,\n OffscreenComponent,\n SimpleMemoComponent,\n SuspenseComponent,\n SuspenseListComponent,\n } = ReactTypeOfWork;\n const {\n ImmediatePriority,\n UserBlockingPriority,\n NormalPriority,\n LowPriority,\n IdlePriority,\n NoPriority,\n } = ReactPriorityLevels;\n\n const {\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 // 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 //\n // Don't patch in test environments because we don't want to interfere with Jest's own console overrides.\n if (process.env.NODE_ENV !== 'test') {\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 const appendComponentStack =\n window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__ !== false;\n const breakOnConsoleErrors =\n window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__ === true;\n const showInlineWarningsAndErrors =\n window.__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__ !== false;\n if (\n appendComponentStack ||\n breakOnConsoleErrors ||\n showInlineWarningsAndErrors\n ) {\n patchConsole({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n });\n }\n }\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(\n new Error().stack\n .split('\\n')\n .slice(1)\n .join('\\n'),\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} = 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 Fragment:\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 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 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 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 // 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.\n const 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.\n const idToArbitraryFiberMap: Map<number, Fiber> = new Map();\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 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 if (enableProfilerChangedHookIndices) {\n const indices = getChangedHooksIndices(\n prevFiber.memoizedState,\n nextFiber.memoizedState,\n );\n data.hooks = indices;\n data.didHooksChange = indices !== null && indices.length > 0;\n } else {\n data.didHooksChange = didHooksChange(\n prevFiber.memoizedState,\n nextFiber.memoizedState,\n );\n }\n\n return data;\n }\n default:\n return null;\n }\n }\n\n function updateContextsForFiber(fiber: Fiber) {\n switch (getElementTypeForFiber(fiber)) {\n case ElementTypeFunction:\n case ElementTypeClass:\n if (idToContextsMap !== null) {\n const id = getFiberIDThrows(fiber);\n const contexts = getContextsForFiber(fiber);\n if (contexts !== null) {\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 ElementTypeFunction:\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 updateContextsForFiber(fiber);\n let current = fiber.child;\n while (current !== null) {\n crawlToInitializeContextsMap(current);\n current = current.sibling;\n }\n }\n\n function getContextChangedKeys(fiber: Fiber): null | boolean | Array<string> {\n if (idToContextsMap !== null) {\n const id = getFiberIDThrows(fiber);\n const prevContexts = idToContextsMap.has(id)\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 ElementTypeFunction:\n if (nextModernContext !== NO_CONTEXT) {\n let prevContext = prevModernContext;\n let nextContext = nextModernContext;\n\n while (prevContext && nextContext) {\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 areHookInputsEqual(\n nextDeps: Array<mixed>,\n prevDeps: Array<mixed> | null,\n ) {\n if (prevDeps === null) {\n return false;\n }\n\n for (let i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n if (is(nextDeps[i], prevDeps[i])) {\n continue;\n }\n return false;\n }\n return true;\n }\n\n function isEffect(memoizedState) {\n if (memoizedState === null || typeof memoizedState !== 'object') {\n return false;\n }\n const {deps} = memoizedState;\n const hasOwnProperty = Object.prototype.hasOwnProperty.bind(memoizedState);\n return (\n hasOwnProperty('create') &&\n hasOwnProperty('destroy') &&\n hasOwnProperty('deps') &&\n hasOwnProperty('next') &&\n hasOwnProperty('tag') &&\n (deps === null || isArray(deps))\n );\n }\n\n function didHookChange(prev: any, next: any): boolean {\n const prevMemoizedState = prev.memoizedState;\n const nextMemoizedState = next.memoizedState;\n\n if (isEffect(prevMemoizedState) && isEffect(nextMemoizedState)) {\n return (\n prevMemoizedState !== nextMemoizedState &&\n !areHookInputsEqual(nextMemoizedState.deps, prevMemoizedState.deps)\n );\n }\n return nextMemoizedState !== prevMemoizedState;\n }\n\n function didHooksChange(prev: any, next: any): boolean {\n if (prev == null || next == null) {\n return false;\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 while (next !== null) {\n if (didHookChange(prev, next)) {\n return true;\n } else {\n next = next.next;\n prev = prev.next;\n }\n }\n }\n\n return false;\n }\n\n function getChangedHooksIndices(prev: any, next: any): null | Array<number> {\n if (enableProfilerChangedHookIndices) {\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 (didHookChange(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 return null;\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 // For types that execute user code, we check PerformedWork effect.\n // We don't reflect bailouts (either referential or sCU) in DevTools.\n // eslint-disable-next-line no-bitwise\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 const pendingOperations: OperationsArray = [];\n const pendingRealUnmountedIDs: Array<number> = [];\n const pendingSimulatedUnmountedIDs: Array<number> = [];\n let pendingOperationsQueue: Array<OperationsArray> | null = [];\n const pendingStringTable: Map<string, number> = 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 flushOrQueueOperations(operations: OperationsArray): void {\n if (pendingOperationsQueue !== null) {\n pendingOperationsQueue.push(operations);\n } else {\n hook.emit('operations', operations);\n }\n }\n\n let flushPendingErrorsAndWarningsAfterDelayTimeoutID = 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 (pendingOperations.length === 0) {\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 (\n pendingOperations.length === 0 &&\n pendingRealUnmountedIDs.length === 0 &&\n pendingSimulatedUnmountedIDs.length === 0 &&\n pendingUnmountedRootID === null\n ) {\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 if (!isProfiling) {\n return;\n }\n }\n\n const numUnmountIDs =\n pendingRealUnmountedIDs.length +\n pendingSimulatedUnmountedIDs.length +\n (pendingUnmountedRootID === null ? 0 : 1);\n\n const operations = new Array(\n // Identify which renderer this update is coming from.\n 2 + // [rendererID, rootFiberID]\n // How big is the string table?\n 1 + // [stringTableLength]\n // Then goes the actual string table.\n pendingStringTableLength +\n // All unmounts are batched in a single message.\n // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n (numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) +\n // Regular operations\n pendingOperations.length,\n );\n\n // Identify which renderer this update is coming from.\n // This enables roots to be mapped to renderers,\n // Which in turn enables fiber props, states, and hooks to be inspected.\n let i = 0;\n operations[i++] = rendererID;\n operations[i++] = currentRootID;\n\n // Now fill in the string table.\n // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n operations[i++] = pendingStringTableLength;\n pendingStringTable.forEach((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 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(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 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 if (isRoot) {\n pushOperation(TREE_OPERATION_ADD);\n pushOperation(id);\n pushOperation(ElementTypeRoot);\n pushOperation(isProfilingSupported ? 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 : '' + 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\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 = updateTrackedPathStateBeforeMount(\n fiber,\n );\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 = ((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 = 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) {\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): Array<SerializedElement> | null {\n return root.memoizedUpdaters != null\n ? Array.from(root.memoizedUpdaters).map(fiberToSerializedElement)\n : null;\n }\n\n function handleCommitFiberUnmount(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 function handlePostCommitFiberRoot(root) {\n if (isProfiling && rootSupportsProfiling(root)) {\n if (currentCommitProfilingMetadata !== null) {\n const {effectDuration, passiveEffectDuration} = getEffectDurations(\n root,\n );\n currentCommitProfilingMetadata.effectDuration = effectDuration;\n currentCommitProfilingMetadata.passiveEffectDuration = passiveEffectDuration;\n }\n }\n }\n\n function handleCommitFiberRoot(root, priorityLevel) {\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 const isMounted =\n current.memoizedState != null && current.memoizedState.element != null;\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 const commitProfilingMetadata = ((rootToCommitProfilingMetadataMap: any): CommitProfilingMetadataMap).get(\n currentRootID,\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 // 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 let fiber = findCurrentFiberUsingSlowPathById(id);\n if (fiber === null) {\n return null;\n }\n // Special case for a timed-out Suspense.\n const isTimedOutSuspense =\n fiber.tag === SuspenseComponent && fiber.memoizedState !== null;\n if (isTimedOutSuspense) {\n // A timed-out Suspense's findDOMNode is useless.\n // Try our best to find the fallback directly.\n const maybeFallbackFiber = fiber.child && fiber.child.sibling;\n if (maybeFallbackFiber != null) {\n fiber = maybeFallbackFiber;\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) {\n const fiber = idToArbitraryFiberMap.get(id);\n return fiber != null ? getDisplayNameForFiber(((fiber: any): Fiber)) : null;\n }\n\n function getFiberIDForNative(\n hostInstance,\n findNearestUnfilteredAncestor = 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 const MOUNTING = 1;\n const MOUNTED = 2;\n const UNMOUNTED = 3;\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 isFiberMountedImpl(fiber: Fiber): number {\n let node = fiber;\n let prevNode = null;\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 if ((getFiberFlags(node) & Placement) !== NoFlags) {\n return MOUNTING;\n }\n // This indicates an error during render.\n if ((getFiberFlags(node) & Incomplete) !== NoFlags) {\n return UNMOUNTED;\n }\n while (node.return) {\n prevNode = node;\n node = node.return;\n\n if ((getFiberFlags(node) & Placement) !== NoFlags) {\n return MOUNTING;\n }\n // This indicates an error during render.\n if ((getFiberFlags(node) & Incomplete) !== NoFlags) {\n return UNMOUNTED;\n }\n\n // If this node is inside of a timed out suspense subtree, we should also ignore errors/warnings.\n const isTimedOutSuspense =\n node.tag === SuspenseComponent && node.memoizedState !== null;\n if (isTimedOutSuspense) {\n // Note that this does not include errors/warnings in the Fallback tree though!\n const primaryChildFragment = node.child;\n const fallbackChildFragment = primaryChildFragment\n ? primaryChildFragment.sibling\n : null;\n if (prevNode !== fallbackChildFragment) {\n return UNMOUNTED;\n }\n }\n }\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 MOUNTED;\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 UNMOUNTED;\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 state = isFiberMountedImpl(fiber);\n if (state === UNMOUNTED) {\n throw Error('Unable to find node on an unmounted component.');\n }\n if (state === MOUNTING) {\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 if (isFiberMountedImpl(parentA) !== MOUNTED) {\n throw Error('Unable to find node on an unmounted component.');\n }\n return fiber;\n }\n if (child === b) {\n // We've determined that B is the current branch.\n if (isFiberMountedImpl(parentA) !== MOUNTED) {\n throw Error('Unable to find node on an unmounted component.');\n }\n return alternate;\n }\n child = child.sibling;\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 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 if (!didFindChild) {\n throw 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 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 // 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 Error('Unable to find node on an unmounted component.');\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 = _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 = [];\n let owner = _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 = {};\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 property error|warn is not writable.\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 property error|warn is not writable.\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 const isErrored =\n (fiber.flags & DidCapture) !== NoFlags ||\n forceErrorForFiberIDs.get(id) === true;\n\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 targetErrorBoundaryID = isErrored ? id : getNearestErrorBoundaryID(fiber);\n } else {\n targetErrorBoundaryID = getNearestErrorBoundaryID(fiber);\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 }\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 copyElementPath(id: number, path: Array<string | number>): void {\n if (isMostRecentlyInspectedElement(id)) {\n copyToClipboard(\n getInObject(\n ((mostRecentlyInspectedElement: any): InspectedElement),\n path,\n ),\n );\n }\n }\n\n function inspectElement(\n requestID: number,\n id: number,\n path: Array<string | number> | null,\n ): InspectedElementPayload {\n if (path !== null) {\n mergeInspectedPaths(path);\n }\n\n if (isMostRecentlyInspectedElement(id)) {\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 mostRecentlyInspectedElement = inspectElementRaw(id);\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 cleanedInspectedElement.context = cleanForBridge(\n cleanedInspectedElement.context,\n createIsPathAllowed('context', null),\n );\n cleanedInspectedElement.hooks = cleanForBridge(\n cleanedInspectedElement.hooks,\n createIsPathAllowed('hooks', 'hooks'),\n );\n cleanedInspectedElement.props = cleanForBridge(\n cleanedInspectedElement.props,\n createIsPathAllowed('props', null),\n );\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 value: cleanedInspectedElement,\n };\n }\n\n function logElementToConsole(id) {\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 = 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 return {\n dataForRoots,\n rendererID,\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\n function stopProfiling() {\n isProfiling = false;\n recordChangeDescriptions = false;\n }\n\n // Automatically start profiling so that we don't miss timing info from initial \"mount\".\n if (\n sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true'\n ) {\n startProfiling(\n sessionStorageGetItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY) ===\n 'true',\n );\n }\n\n // React will switch between these implementations depending on whether\n // we have any manually suspended/errored-out Fibers or not.\n function shouldErrorFiberAlwaysNull() {\n return null;\n }\n\n // Map of id and its force error status: true (error), false (toggled off),\n // null (do nothing)\n const forceErrorForFiberIDs = new Map();\n\n function shouldErrorFiberAccordingToMap(fiber) {\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, forceError) {\n if (\n typeof setErrorHandler !== 'function' ||\n typeof scheduleUpdate !== 'function'\n ) {\n throw new Error(\n 'Expected overrideError() to not get called for earlier React versions.',\n );\n }\n\n forceErrorForFiberIDs.set(id, forceError);\n\n if (forceErrorForFiberIDs.size === 1) {\n // First override is added. Switch React to slower path.\n setErrorHandler(shouldErrorFiberAccordingToMap);\n }\n\n const fiber = idToArbitraryFiberMap.get(id);\n if (fiber != null) {\n scheduleUpdate(fiber);\n }\n }\n\n function shouldSuspendFiberAlwaysFalse() {\n return false;\n }\n\n const forceFallbackForSuspenseIDs = new Set();\n\n function shouldSuspendFiberAccordingToSet(fiber) {\n const maybeID = getFiberIDUnsafe(((fiber: any): Fiber));\n return maybeID !== null && forceFallbackForSuspenseIDs.has(maybeID);\n }\n\n function overrideSuspense(id, forceFallback) {\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 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 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(mightSiblingsBeOnTrackedPath) {\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.substring(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 = idToArbitraryFiberMap.get(id);\n if (fiber == null) {\n return null;\n }\n const keyPath = [];\n while (fiber !== null) {\n keyPath.push(getPathFrame(fiber));\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 = 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 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 return {\n cleanup,\n clearErrorsAndWarnings,\n clearErrorsForFiberID,\n clearWarningsForFiberID,\n copyElementPath,\n deletePath,\n findNativeNodesForFiberID,\n flushInitialOperations,\n getBestMatchForTrackedPath,\n getDisplayNameForFiberID,\n getFiberIDForNative,\n getInstanceAndStyle,\n getOwnersList,\n getPathForElement,\n getProfilingData,\n handleCommitFiberRoot,\n handleCommitFiberUnmount,\n handlePostCommitFiberRoot,\n inspectElement,\n logElementToConsole,\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 updateComponentFilters,\n };\n}\n","/**\n * Copyright (c) Facebook, 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\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 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 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) Facebook, 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\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 {Source} from 'shared/ReactElementType';\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 source: void | null | Source,\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();\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 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\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 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 source: void | null | Source,\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 source: void | null | Source,\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 source: void | null | Source,\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, source, ownerFn);\n }\n switch (type) {\n case SUSPENSE_NUMBER:\n case SUSPENSE_SYMBOL_STRING:\n return describeBuiltInComponentFrame('Suspense', source, ownerFn);\n case SUSPENSE_LIST_NUMBER:\n case SUSPENSE_LIST_SYMBOL_STRING:\n return describeBuiltInComponentFrame('SuspenseList', source, 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 source,\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 source,\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 source,\n ownerFn,\n currentDispatcherRef,\n );\n } catch (x) {}\n }\n }\n }\n return '';\n}\n","/**\n * Copyright (c) Facebook, 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\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\nfunction 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 const source = __DEV__ ? workInProgress._debugSource : null;\n switch (workInProgress.tag) {\n case HostComponent:\n return describeBuiltInComponentFrame(workInProgress.type, source, owner);\n case LazyComponent:\n return describeBuiltInComponentFrame('Lazy', source, owner);\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense', source, owner);\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList', source, owner);\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(\n workInProgress.type,\n source,\n owner,\n currentDispatcherRef,\n );\n case ForwardRef:\n return describeFunctionComponentFrame(\n workInProgress.type.render,\n source,\n owner,\n currentDispatcherRef,\n );\n case ClassComponent:\n return describeClassComponentFrame(\n workInProgress.type,\n source,\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 = workInProgress;\n do {\n info += describeFiber(workTagMap, node, currentDispatcherRef);\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) Facebook, 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 {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {CurrentDispatcherRef, ReactRenderer, WorkTagMap} from './types';\n\nimport {getInternalReactConstants} from './renderer';\nimport {getStackByFiberInDevAndProd} from './DevToolsFiberComponentStack';\n\nconst APPEND_STACK_TO_METHODS = ['error', 'trace', 'warn'];\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\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 = {};\nfor (const method in console) {\n targetConsoleMethods[method] = console[method];\n}\n\nlet unpatchFn: null | (() => void) = null;\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 = {};\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 = {\n appendComponentStack: false,\n breakOnConsoleErrors: false,\n showInlineWarningsAndErrors: false,\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}: {\n appendComponentStack: boolean,\n breakOnConsoleErrors: boolean,\n showInlineWarningsAndErrors: boolean,\n}): 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\n if (unpatchFn !== null) {\n // Don't patch twice.\n return;\n }\n\n const originalConsoleMethods = {};\n\n unpatchFn = () => {\n for (const method in originalConsoleMethods) {\n try {\n // $FlowFixMe property error|warn is not writable.\n targetConsole[method] = originalConsoleMethods[method];\n } catch (error) {}\n }\n };\n\n APPEND_STACK_TO_METHODS.forEach(method => {\n try {\n const originalMethod = (originalConsoleMethods[method] =\n targetConsole[method]);\n\n const overrideMethod = (...args) => {\n let shouldAppendWarningStack = false;\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 const shouldShowInlineWarningsAndErrors =\n consoleSettingsRef.showInlineWarningsAndErrors &&\n (method === 'error' || method === 'warn');\n\n if (shouldAppendWarningStack || shouldShowInlineWarningsAndErrors) {\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 args.push(componentStack);\n }\n }\n } catch (error) {\n // Don't let a DevTools or React internal error interfere with logging.\n } finally {\n break;\n }\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 // $FlowFixMe property error|warn is not writable.\n targetConsole[method] = overrideMethod;\n } catch (error) {}\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","/**\n * Copyright (c) Facebook, 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 EventEmitter from './events';\n\nimport type {ComponentFilter, Wall} from './types';\nimport type {\n InspectedElementPayload,\n OwnersList,\n ProfilingDataBackend,\n RendererID,\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 {\n version: 1,\n minNpmVersion: '4.13.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 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 UpdateConsolePatchSettingsParams = {|\n appendComponentStack: boolean,\n breakOnConsoleErrors: boolean,\n showInlineWarningsAndErrors: boolean,\n|};\n\nexport type BackendEvents = {|\n bridgeProtocol: [BridgeProtocol],\n extensionBackendInitialized: [],\n fastRefreshScheduled: [],\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 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 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 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: [UpdateConsolePatchSettingsParams],\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 (this: any).emit(message.event, message.payload);\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.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 This property is not writable.\n this.addListener = function() {};\n // $FlowFixMe 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 = () => {\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 = ({\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) Facebook, 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 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, unpatch as unpatchConsole} 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} from './types';\nimport type {ComponentFilter} from '../types';\nimport {isSynchronousXHRSupported} from './utils';\n\nconst debug = (methodName, ...args) => {\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 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 shutdown: [],\n traceUpdates: [Set<NativeType>],\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('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 // 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: RendererID|}) => {\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 = ({id, rendererID}: ElementAndRendererID) => {\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 = ({id, rendererID}: ElementAndRendererID) => {\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 = ({id, path, rendererID}: CopyElementParams) => {\n const renderer = this._rendererInterfaces[rendererID];\n if (renderer == null) {\n console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n } else {\n renderer.copyElementPath(id, path);\n }\n };\n\n deletePath = ({hookID, id, path, rendererID, type}: 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 getIDForNode(node: Object): number | null {\n for (const rendererID in this._rendererInterfaces) {\n const renderer = ((this._rendererInterfaces[\n (rendererID: any)\n ]: any): RendererInterface);\n\n try {\n const id = renderer.getFiberIDForNative(node, true);\n if (id !== null) {\n return id;\n }\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 getBridgeProtocol = () => {\n this._bridge.send('bridgeProtocol', currentBridgeProtocol);\n };\n\n getProfilingData = ({rendererID}: {|rendererID: 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 = () => {\n this._bridge.send('profilingStatus', this._isProfiling);\n };\n\n getOwnersList = ({id, rendererID}: ElementAndRendererID) => {\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 = ({\n id,\n path,\n rendererID,\n requestID,\n }: InspectElementParams) => {\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),\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 = ({id, rendererID}: ElementAndRendererID) => {\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 = ({id, rendererID, forceError}: OverrideErrorParams) => {\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 = ({\n id,\n rendererID,\n forceFallback,\n }: OverrideSuspenseParams) => {\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 = ({\n hookID,\n id,\n path,\n rendererID,\n type,\n value,\n }: OverrideValueAtPathParams) => {\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 = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }: SetInParams) => {\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 = ({\n id,\n hookID,\n path,\n rendererID,\n wasForwarded,\n value,\n }: OverrideHookParams) => {\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 = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }: SetInParams) => {\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 = ({\n id,\n path,\n rendererID,\n wasForwarded,\n value,\n }: SetInParams) => {\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) => {\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 = ({\n hookID,\n id,\n newPath,\n oldPath,\n rendererID,\n type,\n }: RenamePathParams) => {\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) => {\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 = () => {\n const target = window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0;\n if (target == null) {\n return;\n }\n this.selectNode(target);\n };\n\n shutdown = () => {\n // Clean up the overlay if visible, and associated events.\n this.emit('shutdown');\n };\n\n startProfiling = (recordChangeDescriptions: boolean) => {\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 = () => {\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 storeAsGlobal = ({count, id, path, rendererID}: StoreAsGlobalParams) => {\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,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n }: {|\n appendComponentStack: boolean,\n breakOnConsoleErrors: boolean,\n showInlineWarningsAndErrors: boolean,\n |}) => {\n // If the frontend preference has change,\n // or in the case of React Native- if the backend is just finding out the preference-\n // then install or uninstall the console overrides.\n // It's safe to call these methods multiple times, so we don't need to worry about that.\n if (\n appendComponentStack ||\n breakOnConsoleErrors ||\n showInlineWarningsAndErrors\n ) {\n patchConsole({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n });\n } else {\n unpatchConsole();\n }\n };\n\n updateComponentFilters = (componentFilters: Array<ComponentFilter>) => {\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 = ({id, path, rendererID}: CopyElementParams) => {\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 = ({id, rendererID}: ElementAndRendererID) => {\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>) => {\n this.emit('traceUpdates', nodes);\n };\n\n onFastRefreshScheduled = () => {\n if (__DEBUG__) {\n debug('onFastRefreshScheduled');\n }\n\n this._bridge.send('fastRefreshScheduled');\n };\n\n onHookOperations = (operations: Array<number>) => {\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 = throttle((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 }, 1000);\n}\n","/**\n * Install the hook on window, which is an event emitter.\n * Note because Chrome content scripts cannot directly modify the window object,\n * we are evaling this function by inserting a script tag.\n * That's why we have to inline the whole event emitter implementation here.\n *\n * @flow\n */\n\nimport {\n patch as patchConsole,\n registerRenderer as registerRendererWithConsole,\n} from './backend/console';\n\nimport type {DevToolsHook} from 'react-devtools-shared/src/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 function detectReactBuildType(renderer) {\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 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 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 let uidCounter = 0;\n\n function inject(renderer) {\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 // * Disable logging during re-renders to inspect hooks (see inspectHooksOfFiber)\n //\n // For React Native, we intentionally patch early (during injection).\n // This provides React Native developers with components stacks even if they don't run DevTools.\n // This won't work for DOM though, since this entire file is eval'ed and inserted as a script tag.\n // In that case, we'll patch later (when the frontend attaches).\n //\n // Don't patch in test environments because we don't want to interfere with Jest's own console overrides.\n //\n // Note that because this function is inlined, this conditional check must only use static booleans.\n // Otherwise the extension will throw with an undefined error.\n // (See comments in the try/catch below for more context on inlining.)\n if (!__EXTENSION__ && !__TEST__) {\n try {\n const appendComponentStack =\n window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__ !== false;\n const breakOnConsoleErrors =\n window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__ === true;\n const showInlineWarningsAndErrors =\n window.__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__ !== false;\n\n // The installHook() function is injected by being stringified in the browser,\n // so imports outside of this function do not get included.\n //\n // Normally we could check \"typeof patchConsole === 'function'\",\n // but Webpack wraps imports with an object (e.g. _backend_console__WEBPACK_IMPORTED_MODULE_0__)\n // and the object itself will be undefined as well for the reasons mentioned above,\n // so we use try/catch instead.\n if (\n appendComponentStack ||\n breakOnConsoleErrors ||\n showInlineWarningsAndErrors\n ) {\n registerRendererWithConsole(renderer);\n patchConsole({\n appendComponentStack,\n breakOnConsoleErrors,\n showInlineWarningsAndErrors,\n });\n }\n } catch (error) {}\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', {id, renderer, reactBuildType});\n\n return id;\n }\n\n let hasDetectedBadDCE = false;\n\n function sub(event, fn) {\n hook.on(event, fn);\n return () => hook.off(event, fn);\n }\n\n function on(event, fn) {\n if (!listeners[event]) {\n listeners[event] = [];\n }\n listeners[event].push(fn);\n }\n\n function off(event, fn) {\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, data) {\n if (listeners[event]) {\n listeners[event].map(fn => fn(data));\n }\n }\n\n function getFiberRoots(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, fiber) {\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n rendererInterface.handleCommitFiberUnmount(fiber);\n }\n }\n\n function onCommitFiberRoot(rendererID, root, priorityLevel) {\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, root) {\n const rendererInterface = rendererInterfaces.get(rendererID);\n if (rendererInterface != null) {\n rendererInterface.handlePostCommitFiberRoot(root);\n }\n }\n\n // TODO: More meaningful names for \"rendererInterfaces\" and \"renderers\".\n const fiberRoots = {};\n const rendererInterfaces = new Map();\n const listeners = {};\n const renderers = new Map();\n\n const hook: DevToolsHook = {\n rendererInterfaces,\n listeners,\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 };\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) Facebook, 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 {InternalInstance} from './renderer';\n\nexport function decorate(object: Object, attr: string, fn: Function): Function {\n const old = object[attr];\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 = {};\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\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) Facebook, 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 {\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 copyToClipboard,\n copyWithDelete,\n copyWithRename,\n copyWithSet,\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 = '' + 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<\n InternalInstance,\n number,\n > = new WeakMap();\n const internalInstanceToRootIDMap: WeakMap<\n InternalInstance,\n number,\n > = new WeakMap();\n\n let getInternalIDForNative: GetFiberIDForNative = ((null: any): GetFiberIDForNative);\n let findNativeNodeForInternalID: (id: number) => ?NativeType;\n\n if (renderer.ComponentTree) {\n getInternalIDForNative = (node, findNearestUnfilteredAncestor) => {\n const internalInstance = renderer.ComponentTree.getClosestInstanceFromNode(\n node,\n );\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 } 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, b) {\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 return fn.apply(this, args);\n }\n if (hostContainerInfo._topLevelWrapper === undefined) {\n // SSR\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 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 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 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 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 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 return fn.apply(this, args);\n }\n\n const id = getID(internalInstance);\n parentIDStack.push(id);\n try {\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); // isProfilingSupported?\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(\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 copyElementPath(id: number, path: Array<string | number>): void {\n const inspectedElement = inspectElementRaw(id);\n if (inspectedElement !== null) {\n copyToClipboard(getInObject(inspectedElement, path));\n }\n }\n\n function inspectElement(\n requestID: number,\n id: number,\n path: Array<string | number> | null,\n ): InspectedElementPayload {\n if (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 dehyration (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 = [];\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 = [];\n const warnings = [];\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 }\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 return {\n clearErrorsAndWarnings,\n clearErrorsForFiberID,\n clearWarningsForFiberID,\n cleanup,\n copyElementPath,\n deletePath,\n flushInitialOperations,\n getBestMatchForTrackedPath,\n getDisplayNameForFiberID,\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 inspectElement,\n logElementToConsole,\n overrideError,\n overrideSuspense,\n overrideValueAtPath,\n renamePath,\n prepareViewAttributeSource,\n prepareViewElementSource,\n renderer,\n setTraceUpdatesEnabled,\n setTrackedPath,\n startProfiling,\n stopProfiling,\n storeAsGlobal,\n updateComponentFilters,\n };\n}\n","/**\n * Copyright (c) Facebook, 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 Agent from './agent';\n\nimport {attach} from './renderer';\nimport {attach as attachLegacy} from './legacy/renderer';\n\nimport type {DevToolsHook, ReactRenderer, RendererInterface} from './types';\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 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 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) Facebook, 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 {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) Facebook, 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 Agent from 'react-devtools-shared/src/backend/agent';\nimport resolveBoxStyle from './resolveBoxStyle';\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;\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 // $FlowFixMe the parameter types of an unknown function are unknown\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 = {};\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 (Array.isArray(style)) {\n const lastIndex = style.length - 1;\n if (\n typeof style[lastIndex] === 'object' &&\n !Array.isArray(style[lastIndex])\n ) {\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 (Array.isArray(style)) {\n const lastLength = style.length - 1;\n if (\n typeof style[lastLength] === 'object' &&\n !Array.isArray(style[lastLength])\n ) {\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) Facebook, 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 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 {__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';\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 ...\n};\n\ninstallHook(window);\n\nconst hook: ?DevToolsHook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\nlet savedComponentFilters: Array<ComponentFilter> = getDefaultComponentFilters();\n\nfunction debug(methodName: string, ...args) {\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,\n retryConnectionDelay = 2000,\n isAppActive = () => true,\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 (!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 'inspectElement',\n ({id, rendererID}: {id: number, rendererID: number, ...}) => {\n const renderer = agent.rendererInterfaces[rendererID];\n if (renderer != null) {\n // Send event for RN to highlight.\n const nodes: ?Array<HTMLElement> = renderer.findNativeNodesForFiberID(\n id,\n );\n if (nodes != null && nodes[0] != null) {\n agent.emit('showNativeHighlight', nodes[0]);\n }\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 // 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 bridge.send('overrideComponentFilters', savedComponentFilters);\n }\n\n // TODO (npm-packages) Warn if \"isBackendStorageAPISupported\"\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 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) {\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) {\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) {\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"],"sourceRoot":""} |