├── .eslintcache ├── .gitignore ├── .gitmodules ├── README.md ├── config ├── env.js ├── getHttpsConfig.js ├── jest │ ├── cssTransform.js │ └── fileTransform.js ├── modules.js ├── paths.js ├── pnpTs.js ├── webpack.config.js └── webpackDevServer.config.js ├── package.json ├── public ├── favicon.ico ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt ├── scripts ├── build.js ├── start.js └── test.js ├── src ├── App.css ├── App.js ├── B.js ├── TestPage.js ├── adaptation.js ├── index.css ├── index.js └── logo.svg └── yarn.lock /.eslintcache: -------------------------------------------------------------------------------- 1 | [{"/Users/wangyongqi/baidu/learn/debug-react-new/src/index.js":"1","/Users/wangyongqi/baidu/learn/debug-react-new/src/App.js":"2","/Users/wangyongqi/baidu/learn/debug-react-new/src/adaptation.js":"3","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/index.js":"4","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-refresh/runtime.js":"5","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactLazy.js":"6","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/memo.js":"7","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactBaseClasses.js":"8","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactChildren.js":"9","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/createScope.js":"10","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactSymbols.js":"11","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMClientInjection.js":"12","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactPortal.js":"13","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMRoot.js":"14","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/ReactControlledComponent.js":"15","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/ReactDOMEventListener.js":"16","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/ReactDOMEventReplaying.js":"17","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventPluginUtils.js":"18","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SelectEventPlugin.js":"19","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SimpleEventPlugin.js":"20","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactWorkTags.js":"21","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/HTMLNodeType.js":"22","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/BeforeInputEventPlugin.js":"23","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/forEachAccumulated.js":"24","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventSystemFlags.js":"25","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/getListener.js":"26","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactTreeTraversal.js":"27","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/DOMProperty.js":"28","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMHostConfig.js":"29","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactLazyComponent.js":"30","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticPointerEvent.js":"31","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/setTextContent.js":"32","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/isCustomComponent.js":"33","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/ReactDOMNullInputValuePropHook.js":"34","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/getActiveElement.js":"35","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticFocusEvent.js":"36","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticDragEvent.js":"37","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticKeyboardEvent.js":"38","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getEventCharCode.js":"39","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMTextarea.js":"40","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/DOMPropertyOperations.js":"41","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/isEventSupported.js":"42","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticCompositionEvent.js":"43","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/FallbackCompositionState.js":"44","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMInput.js":"45","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberTreeReflection.js":"46","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberDevToolsHook.js":"47","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberRoot.js":"48","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberContext.js":"49","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/warnValidStyle.js":"50","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMSelection.js":"51","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/forks/SchedulerHostConfig.mock.js":"52","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/forks/SchedulerHostConfig.default.js":"53","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/getNodeForCharacterOffset.js":"54","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerFeatureFlags.js":"55","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiber.js":"56","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/Tracing.js":"57","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactCapturedValue.js":"58","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberUnwindWork.js":"59","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberThrow.js":"60","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberSuspenseContext.js":"61","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHostContext.js":"62","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberCommitWork.js":"63","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberFundamental.js":"64","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberScope.js":"65","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberDeprecatedEvents.js":"66","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberLazyComponent.js":"67","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactHookEffectTags.js":"68","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberErrorLogger.js":"69","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactChildFiber.js":"70","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberErrorDialog.js":"71","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberClassComponent.js":"72","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/React.js":"73","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/forwardRef.js":"74","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactBatchConfig.js":"75","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMLegacy.js":"76","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactVersion.js":"77","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ExecutionEnvironment.js":"78","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/ReactGenericBatching.js":"79","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/isValidElementType.js":"80","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactNoopUpdateQueue.js":"81","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactDebugCurrentFrame.js":"82","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-refresh/src/ReactFreshRuntime.js":"83","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactRootTags.js":"84","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactSharedInternals.js":"85","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getEventTarget.js":"86","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/reflection.js":"87","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactTypes.js":"88","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/TopLevelEventTypes.js":"89","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DOMLegacyEventPluginSystem.js":"90","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/setInnerHTML.js":"91","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/assertValidProps.js":"92","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/ReactDOMInvalidARIAHook.js":"93","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/ReactDOMUnknownPropertyHook.js":"94","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/describeComponentFrame.js":"95","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticMouseEvent.js":"96","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticClipboardEvent.js":"97","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticUIEvent.js":"98","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/isTextInputElement.js":"99","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticInputEvent.js":"100","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/dangerousStyleValue.js":"101","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getVendorPrefixedEventName.js":"102","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ToStringValue.js":"103","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactCurrentFiber.js":"104","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/voidElementTags.js":"105","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/invokeGuardedCallbackImpl.js":"106","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/enqueueTask.js":"107","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerHostConfig.js":"108","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getEventKey.js":"109","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getEventModifierState.js":"110","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/objectIs.js":"111","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactSideEffectTags.js":"112","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberWorkLoop.js":"113","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberBeginWork.js":"114","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/invariant.js":"115","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/index.js":"116","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOM.js":"117","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/block.js":"118","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactContext.js":"119","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/createFundamentalComponent.js":"120","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/createEventResponder.js":"121","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMComponentTree.js":"122","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/checkReact.js":"123","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactFeatureFlags.js":"124","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/inline.dom.js":"125","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventBatching.js":"126","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventPropagators.js":"127","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactCurrentBatchConfig.js":"128","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMComponent.js":"129","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactInstanceMap.js":"130","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/accumulateInto.js":"131","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactErrorUtils.js":"132","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DOMEventProperties.js":"133","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/inputValueTracking.js":"134","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactInputSelection.js":"135","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/index.js":"136","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHostConfig.js":"137","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactTypeOfMode.js":"138","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/ReactControlledValuePropTypes.js":"139","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/validAriaProperties.js":"140","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/CSSShorthandProperty.js":"141","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactUpdateQueue.js":"142","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/CSSProperty.js":"143","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/tracing.js":"144","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberNewContext.js":"145","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerPriorities.js":"146","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberSuspenseComponent.js":"147","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHydrationContext.js":"148","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHooks.js":"149","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactCreateRef.js":"150","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactElement.js":"151","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventPluginRegistry.js":"152","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/IsSomeRendererActing.js":"153","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/hasBadMapPolyfill.js":"154","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/getComponentName.js":"155","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DOMEventListenerMap.js":"156","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMOption.js":"157","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/endsWith.js":"158","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticTouchEvent.js":"159","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMSelect.js":"160","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/possibleStandardNames.js":"161","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberExpirationTime.js":"162","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/validateDOMNesting.js":"163","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHotReloading.js":"164","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/maxSigned31BitInt.js":"165","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/forks/ReactFiberHostConfig.dom.js":"166","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/SchedulerWithReactIntegration.js":"167","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/TracingSubscriptions.js":"168","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactProfilerTimer.js":"169","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberCompleteWork.js":"170","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactCurrentOwner.js":"171","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/EnterLeaveEventPlugin.js":"172","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/checkPassiveEvents.js":"173","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DeprecatedDOMEventResponderSystem.js":"174","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/SyntheticEvent.js":"175","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/HostConfigWithNoPersistence.js":"176","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberSuspenseConfig.js":"177","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/Scheduler.js":"178","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerProfiling.js":"179","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactStrictModeWarnings.js":"180","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactCurrentDispatcher.js":"181","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/EventListener.js":"182","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/DOMNamespaces.js":"183","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticTransitionEvent.js":"184","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/shallowEqual.js":"185","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/hyphenateStyleName.js":"186","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/omittedCloseTags.js":"187","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactDebugFiberPerf.js":"188","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/ChangeEventPlugin.js":"189","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberReconciler.js":"190","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticWheelEvent.js":"191","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/createMicrosoftUnsafeLocalFunction.js":"192","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberStack.js":"193","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactHooks.js":"194","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactElementValidator.js":"195","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DOMTopLevelEventTypes.js":"196","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/sanitizeURL.js":"197","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactSharedInternals.js":"198","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerMinHeap.js":"199","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/CSSPropertyOperations.js":"200","/Users/wangyongqi/baidu/learn/debug-react-new/src/TestPage.js":"201","/Users/wangyongqi/baidu/learn/debug-react-new/src/B.js":"202","/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticAnimationEvent.js":"203"},{"size":245,"mtime":1607878166308,"results":"204","hashOfConfig":"205"},{"size":564,"mtime":1607850648587,"results":"206","hashOfConfig":"205"},{"size":107,"mtime":1607850619379,"results":"207","hashOfConfig":"205"},{"size":241,"mtime":1607850157243,"results":"208","hashOfConfig":"209"},{"size":395,"mtime":1607850157521,"results":"210","hashOfConfig":"209"},{"size":1990,"mtime":1607850157575,"results":"211","hashOfConfig":"209"},{"size":777,"mtime":1607850157604,"results":"212","hashOfConfig":"209"},{"size":4901,"mtime":1607849816383,"results":"213","hashOfConfig":"209"},{"size":11752,"mtime":1607850157565,"results":"214","hashOfConfig":"209"},{"size":504,"mtime":1607850157655,"results":"215","hashOfConfig":"209"},{"size":2692,"mtime":1607850157650,"results":"216","hashOfConfig":"209"},{"size":2023,"mtime":1607850157328,"results":"217","hashOfConfig":"209"},{"size":746,"mtime":1607850157649,"results":"218","hashOfConfig":"209"},{"size":6347,"mtime":1607850157331,"results":"219","hashOfConfig":"209"},{"size":2095,"mtime":1607850157101,"results":"220","hashOfConfig":"209"},{"size":10943,"mtime":1607850157342,"results":"221","hashOfConfig":"209"},{"size":19863,"mtime":1607850157342,"results":"222","hashOfConfig":"209"},{"size":5481,"mtime":1607850157099,"results":"223","hashOfConfig":"209"},{"size":6717,"mtime":1607850157343,"results":"224","hashOfConfig":"209"},{"size":7683,"mtime":1607850157343,"results":"225","hashOfConfig":"209"},{"size":1317,"mtime":1607850157652,"results":"226","hashOfConfig":"209"},{"size":435,"mtime":1607849816184,"results":"227","hashOfConfig":"209"},{"size":14775,"mtime":1607850157336,"results":"228","hashOfConfig":"209"},{"size":915,"mtime":1607850157114,"results":"229","hashOfConfig":"209"},{"size":514,"mtime":1607850157100,"results":"230","hashOfConfig":"209"},{"size":1994,"mtime":1607850157120,"results":"231","hashOfConfig":"209"},{"size":3443,"mtime":1607850157651,"results":"232","hashOfConfig":"209"},{"size":15571,"mtime":1607850157361,"results":"233","hashOfConfig":"209"},{"size":30710,"mtime":1607850157330,"results":"234","hashOfConfig":"209"},{"size":2060,"mtime":1607850157648,"results":"235","hashOfConfig":"209"},{"size":610,"mtime":1607850157345,"results":"236","hashOfConfig":"209"},{"size":904,"mtime":1607850157335,"results":"237","hashOfConfig":"209"},{"size":972,"mtime":1607850157364,"results":"238","hashOfConfig":"209"},{"size":1070,"mtime":1607849816185,"results":"239","hashOfConfig":"209"},{"size":494,"mtime":1607849816127,"results":"240","hashOfConfig":"209"},{"size":442,"mtime":1607850157344,"results":"241","hashOfConfig":"209"},{"size":447,"mtime":1607850157344,"results":"242","hashOfConfig":"209"},{"size":2059,"mtime":1607850157345,"results":"243","hashOfConfig":"209"},{"size":1548,"mtime":1607850157352,"results":"244","hashOfConfig":"209"},{"size":5845,"mtime":1607850157333,"results":"245","hashOfConfig":"209"},{"size":6098,"mtime":1607850157326,"results":"246","hashOfConfig":"209"},{"size":1084,"mtime":1607850157353,"results":"247","hashOfConfig":"209"},{"size":471,"mtime":1607850157344,"results":"248","hashOfConfig":"209"},{"size":1657,"mtime":1607849816148,"results":"249","hashOfConfig":"209"},{"size":15774,"mtime":1607850157330,"results":"250","hashOfConfig":"209"},{"size":10397,"mtime":1607850157470,"results":"251","hashOfConfig":"209"},{"size":4349,"mtime":1607850157458,"results":"252","hashOfConfig":"209"},{"size":9157,"mtime":1607850157465,"results":"253","hashOfConfig":"209"},{"size":11065,"mtime":1607850157456,"results":"254","hashOfConfig":"209"},{"size":3157,"mtime":1607849816191,"results":"255","hashOfConfig":"209"},{"size":5896,"mtime":1607850157333,"results":"256","hashOfConfig":"209"},{"size":5174,"mtime":1607850157646,"results":"257","hashOfConfig":"209"},{"size":8054,"mtime":1607850157645,"results":"258","hashOfConfig":"209"},{"size":1579,"mtime":1607849816129,"results":"259","hashOfConfig":"209"},{"size":327,"mtime":1607849816436,"results":"260","hashOfConfig":"209"},{"size":31061,"mtime":1607850157450,"results":"261","hashOfConfig":"209"},{"size":7649,"mtime":1607849816438,"results":"262","hashOfConfig":"209"},{"size":920,"mtime":1607850157447,"results":"263","hashOfConfig":"209"},{"size":4528,"mtime":1607850157470,"results":"264","hashOfConfig":"209"},{"size":14732,"mtime":1607850157469,"results":"265","hashOfConfig":"209"},{"size":2690,"mtime":1607850157469,"results":"266","hashOfConfig":"209"},{"size":3691,"mtime":1607850157463,"results":"267","hashOfConfig":"209"},{"size":54109,"mtime":1607850157454,"results":"268","hashOfConfig":"209"},{"size":648,"mtime":1607850157461,"results":"269","hashOfConfig":"209"},{"size":5158,"mtime":1607850157466,"results":"270","hashOfConfig":"209"},{"size":6435,"mtime":1607850157457,"results":"271","hashOfConfig":"209"},{"size":1057,"mtime":1607850157464,"results":"272","hashOfConfig":"209"},{"size":505,"mtime":1607850157474,"results":"273","hashOfConfig":"209"},{"size":3664,"mtime":1607850157460,"results":"274","hashOfConfig":"209"},{"size":46053,"mtime":1607850157448,"results":"275","hashOfConfig":"209"},{"size":514,"mtime":1607850157459,"results":"276","hashOfConfig":"209"},{"size":39238,"mtime":1607850157453,"results":"277","hashOfConfig":"209"},{"size":3580,"mtime":1607850157563,"results":"278","hashOfConfig":"209"},{"size":1612,"mtime":1607850157604,"results":"279","hashOfConfig":"209"},{"size":746,"mtime":1607850157564,"results":"280","hashOfConfig":"209"},{"size":12651,"mtime":1607850157330,"results":"281","hashOfConfig":"209"},{"size":297,"mtime":1607850157652,"results":"282","hashOfConfig":"209"},{"size":377,"mtime":1607849816448,"results":"283","hashOfConfig":"209"},{"size":4896,"mtime":1607850157102,"results":"284","hashOfConfig":"209"},{"size":1539,"mtime":1607850157661,"results":"285","hashOfConfig":"209"},{"size":3735,"mtime":1607849816390,"results":"286","hashOfConfig":"209"},{"size":1494,"mtime":1607850157571,"results":"287","hashOfConfig":"209"},{"size":21621,"mtime":1607850157523,"results":"288","hashOfConfig":"209"},{"size":329,"mtime":1607850157649,"results":"289","hashOfConfig":"209"},{"size":880,"mtime":1607876112362,"results":"290","hashOfConfig":"209"},{"size":1033,"mtime":1607849816165,"results":"291","hashOfConfig":"209"},{"size":265,"mtime":1607849816261,"results":"292","hashOfConfig":"209"},{"size":4603,"mtime":1607850157651,"results":"293","hashOfConfig":"209"},{"size":977,"mtime":1607850157108,"results":"294","hashOfConfig":"209"},{"size":12988,"mtime":1607850157339,"results":"295","hashOfConfig":"209"},{"size":2281,"mtime":1607849816142,"results":"296","hashOfConfig":"209"},{"size":2396,"mtime":1607850157364,"results":"297","hashOfConfig":"209"},{"size":3404,"mtime":1607850157362,"results":"298","hashOfConfig":"209"},{"size":8912,"mtime":1607850157363,"results":"299","hashOfConfig":"209"},{"size":1163,"mtime":1607850157655,"results":"300","hashOfConfig":"209"},{"size":1731,"mtime":1607850157345,"results":"301","hashOfConfig":"209"},{"size":558,"mtime":1607850157343,"results":"302","hashOfConfig":"209"},{"size":367,"mtime":1607850157346,"results":"303","hashOfConfig":"209"},{"size":979,"mtime":1607850157661,"results":"304","hashOfConfig":"209"},{"size":479,"mtime":1607850157344,"results":"305","hashOfConfig":"209"},{"size":1701,"mtime":1607849816188,"results":"306","hashOfConfig":"209"},{"size":2609,"mtime":1607849816166,"results":"307","hashOfConfig":"209"},{"size":900,"mtime":1607849816123,"results":"308","hashOfConfig":"209"},{"size":2559,"mtime":1607850157449,"results":"309","hashOfConfig":"209"},{"size":503,"mtime":1607849816191,"results":"310","hashOfConfig":"209"},{"size":9146,"mtime":1607850157660,"results":"311","hashOfConfig":"209"},{"size":1810,"mtime":1607850157656,"results":"312","hashOfConfig":"209"},{"size":798,"mtime":1607877491490,"results":"313","hashOfConfig":"209"},{"size":2847,"mtime":1607850157353,"results":"314","hashOfConfig":"209"},{"size":1254,"mtime":1607850157353,"results":"315","hashOfConfig":"209"},{"size":660,"mtime":1607849816466,"results":"316","hashOfConfig":"209"},{"size":1510,"mtime":1607850157649,"results":"317","hashOfConfig":"209"},{"size":108767,"mtime":1607850157473,"results":"318","hashOfConfig":"209"},{"size":109460,"mtime":1607850157452,"results":"319","hashOfConfig":"209"},{"size":828,"mtime":1607877817176,"results":"320","hashOfConfig":"209"},{"size":1984,"mtime":1607850157562,"results":"321","hashOfConfig":"209"},{"size":7742,"mtime":1607877212655,"results":"322","hashOfConfig":"209"},{"size":2421,"mtime":1607850157603,"results":"323","hashOfConfig":"209"},{"size":4273,"mtime":1607850157565,"results":"324","hashOfConfig":"209"},{"size":959,"mtime":1607850157655,"results":"325","hashOfConfig":"209"},{"size":1381,"mtime":1607850157655,"results":"326","hashOfConfig":"209"},{"size":6639,"mtime":1607850157329,"results":"327","hashOfConfig":"209"},{"size":410,"mtime":1607849816187,"results":"328","hashOfConfig":"209"},{"size":5287,"mtime":1607850157648,"results":"329","hashOfConfig":"209"},{"size":360,"mtime":1607850157445,"results":"330","hashOfConfig":"209"},{"size":2011,"mtime":1607850157099,"results":"331","hashOfConfig":"209"},{"size":4597,"mtime":1607850157100,"results":"332","hashOfConfig":"209"},{"size":532,"mtime":1607850157566,"results":"333","hashOfConfig":"209"},{"size":46015,"mtime":1607850157329,"results":"334","hashOfConfig":"209"},{"size":1054,"mtime":1607850157648,"results":"335","hashOfConfig":"209"},{"size":1492,"mtime":1607850157114,"results":"336","hashOfConfig":"209"},{"size":3157,"mtime":1607849816450,"results":"337","hashOfConfig":"209"},{"size":8330,"mtime":1607850157339,"results":"338","hashOfConfig":"209"},{"size":3417,"mtime":1607849816129,"results":"339","hashOfConfig":"209"},{"size":5839,"mtime":1607850157334,"results":"340","hashOfConfig":"209"},{"size":535,"mtime":1607877433627,"results":"341","hashOfConfig":"209"},{"size":718,"mtime":1607877356173,"results":"342","hashOfConfig":"209"},{"size":497,"mtime":1607850157476,"results":"343","hashOfConfig":"209"},{"size":2408,"mtime":1607850157361,"results":"344","hashOfConfig":"209"},{"size":1461,"mtime":1607849816190,"results":"345","hashOfConfig":"209"},{"size":5112,"mtime":1607849816182,"results":"346","hashOfConfig":"209"},{"size":17674,"mtime":1607850157476,"results":"347","hashOfConfig":"209"},{"size":2030,"mtime":1607849816181,"results":"348","hashOfConfig":"209"},{"size":292,"mtime":1607849816447,"results":"349","hashOfConfig":"209"},{"size":12874,"mtime":1607850157464,"results":"350","hashOfConfig":"209"},{"size":474,"mtime":1607849816436,"results":"351","hashOfConfig":"209"},{"size":4885,"mtime":1607850157466,"results":"352","hashOfConfig":"209"},{"size":14996,"mtime":1607850157464,"results":"353","hashOfConfig":"209"},{"size":74028,"mtime":1607850157462,"results":"354","hashOfConfig":"209"},{"size":459,"mtime":1607849816384,"results":"355","hashOfConfig":"209"},{"size":15446,"mtime":1607850157572,"results":"356","hashOfConfig":"209"},{"size":6977,"mtime":1607850157099,"results":"357","hashOfConfig":"209"},{"size":375,"mtime":1607849816382,"results":"358","hashOfConfig":"209"},{"size":745,"mtime":1607850157660,"results":"359","hashOfConfig":"209"},{"size":2630,"mtime":1607850157660,"results":"360","hashOfConfig":"209"},{"size":919,"mtime":1607850157337,"results":"361","hashOfConfig":"209"},{"size":2854,"mtime":1607850157331,"results":"362","hashOfConfig":"209"},{"size":385,"mtime":1607850157655,"results":"363","hashOfConfig":"209"},{"size":649,"mtime":1607850157345,"results":"364","hashOfConfig":"209"},{"size":6448,"mtime":1607850157332,"results":"365","hashOfConfig":"209"},{"size":13537,"mtime":1607850157365,"results":"366","hashOfConfig":"209"},{"size":4486,"mtime":1607850157461,"results":"367","hashOfConfig":"209"},{"size":12339,"mtime":1607850157335,"results":"368","hashOfConfig":"209"},{"size":13002,"mtime":1607850157463,"results":"369","hashOfConfig":"209"},{"size":358,"mtime":1607850157520,"results":"370","hashOfConfig":"209"},{"size":259,"mtime":1607849816328,"results":"371","hashOfConfig":"209"},{"size":7151,"mtime":1607850157477,"results":"372","hashOfConfig":"209"},{"size":3640,"mtime":1607849816438,"results":"373","hashOfConfig":"209"},{"size":1875,"mtime":1607850157474,"results":"374","hashOfConfig":"209"},{"size":47638,"mtime":1607850157455,"results":"375","hashOfConfig":"209"},{"size":574,"mtime":1607850157570,"results":"376","hashOfConfig":"209"},{"size":5337,"mtime":1607850157341,"results":"377","hashOfConfig":"209"},{"size":1002,"mtime":1607850157352,"results":"378","hashOfConfig":"209"},{"size":17792,"mtime":1607850157340,"results":"379","hashOfConfig":"209"},{"size":9153,"mtime":1607850157107,"results":"380","hashOfConfig":"209"},{"size":980,"mtime":1607850157647,"results":"381","hashOfConfig":"209"},{"size":553,"mtime":1607850157469,"results":"382","hashOfConfig":"209"},{"size":11733,"mtime":1607850157606,"results":"383","hashOfConfig":"209"},{"size":5781,"mtime":1607849816437,"results":"384","hashOfConfig":"209"},{"size":13670,"mtime":1607850157475,"results":"385","hashOfConfig":"209"},{"size":492,"mtime":1607850157568,"results":"386","hashOfConfig":"209"},{"size":839,"mtime":1607850157341,"results":"387","hashOfConfig":"209"},{"size":1194,"mtime":1607849816183,"results":"388","hashOfConfig":"209"},{"size":603,"mtime":1607850157345,"results":"389","hashOfConfig":"209"},{"size":1164,"mtime":1607849816467,"results":"390","hashOfConfig":"209"},{"size":823,"mtime":1607849816188,"results":"391","hashOfConfig":"209"},{"size":650,"mtime":1607850157365,"results":"392","hashOfConfig":"209"},{"size":14559,"mtime":1607850157450,"results":"393","hashOfConfig":"209"},{"size":9519,"mtime":1607850157337,"results":"394","hashOfConfig":"209"},{"size":21648,"mtime":1607877396216,"results":"395","hashOfConfig":"209"},{"size":1338,"mtime":1607850157346,"results":"396","hashOfConfig":"209"},{"size":673,"mtime":1607849816188,"results":"397","hashOfConfig":"209"},{"size":1654,"mtime":1607850157466,"results":"398","hashOfConfig":"209"},{"size":5512,"mtime":1607850157574,"results":"399","hashOfConfig":"209"},{"size":15424,"mtime":1607850157574,"results":"400","hashOfConfig":"209"},{"size":8202,"mtime":1607850157340,"results":"401","hashOfConfig":"209"},{"size":1923,"mtime":1607850157366,"results":"402","hashOfConfig":"209"},{"size":1076,"mtime":1607850157577,"results":"403","hashOfConfig":"209"},{"size":2275,"mtime":1607849816436,"results":"404","hashOfConfig":"209"},{"size":5021,"mtime":1607850157360,"results":"405","hashOfConfig":"209"},{"size":618,"mtime":1607878235586,"results":"406","hashOfConfig":"205"},{"size":645,"mtime":1607878130730,"results":"407","hashOfConfig":"205"},{"size":589,"mtime":1607850157343,"results":"408","hashOfConfig":"209"},{"filePath":"409","messages":"410","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"411","usedDeprecatedRules":"412"},"1qaxrme",{"filePath":"413","messages":"414","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"415"},{"filePath":"416","messages":"417","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"418"},{"filePath":"419","messages":"420","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},"1jet2oo",{"filePath":"422","messages":"423","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"424"},{"filePath":"425","messages":"426","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"428","messages":"429","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"431","messages":"432","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"434","messages":"435","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"437","messages":"438","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"440","messages":"441","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"442","messages":"443","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"444","messages":"445","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"446","messages":"447","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"448","messages":"449","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"450","messages":"451","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"452","messages":"453","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"454","messages":"455","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"456","messages":"457","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"458","messages":"459","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"460","messages":"461","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"462","messages":"463","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"464","messages":"465","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"466","messages":"467","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"468","messages":"469","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"470","messages":"471","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"472","messages":"473","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"474","messages":"475","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"476","messages":"477","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"478","messages":"479","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"480","messages":"481","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"482","messages":"483","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"484","messages":"485","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"486","messages":"487","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"488","messages":"489","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"490","messages":"491","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"492","messages":"493","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"494","messages":"495","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"496","messages":"497","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"498","messages":"499","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"500","messages":"501","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"502","messages":"503","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"504","messages":"505","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"506","messages":"507","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"508","messages":"509","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"510","messages":"511","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"512","messages":"513","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"514","messages":"515","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"516","messages":"517","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"518","messages":"519","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"520","messages":"521","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"522","messages":"523","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"524","messages":"525","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"526","messages":"527","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"528","messages":"529","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"424"},{"filePath":"530","messages":"531","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"532","messages":"533","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"534","messages":"535","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"536","messages":"537","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"538","messages":"539","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"540","messages":"541","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"542","messages":"543","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"544","messages":"545","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"546","messages":"547","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"548","messages":"549","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"550","messages":"551","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"552","messages":"553","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"554","messages":"555","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"556"},{"filePath":"557","messages":"558","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"559","messages":"560","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"561","messages":"562","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"563","messages":"564","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"565","messages":"566","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"567","messages":"568","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"569","messages":"570","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"571"},{"filePath":"572","messages":"573","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"574","messages":"575","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"576","messages":"577","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"578","messages":"579","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"424"},{"filePath":"580","messages":"581","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"582","messages":"583","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"584","messages":"585","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"586","messages":"587","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"571"},{"filePath":"588","messages":"589","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"590","messages":"591","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"592","messages":"593","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"594","messages":"595","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"596","messages":"597","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"598","messages":"599","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"600","messages":"601","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"602","messages":"603","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"604","messages":"605","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"606","messages":"607","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"608","messages":"609","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"610","messages":"611","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"612","messages":"613","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"614","messages":"615","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"616","messages":"617","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"618","messages":"619","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"620","messages":"621","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"622","messages":"623","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"556"},{"filePath":"624","messages":"625","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"556"},{"filePath":"626","messages":"627","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"628","messages":"629","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"630","messages":"631","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"632","messages":"633","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"634","messages":"635","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"636","messages":"637","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"638","messages":"639","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"640","messages":"641","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"642"},{"filePath":"643","messages":"644","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"645","messages":"646","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"647","messages":"648","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"649","messages":"650","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"651","messages":"652","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"653","messages":"654","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"655","messages":"656","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"657","messages":"658","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"659","messages":"660","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"661","messages":"662","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"663","messages":"664","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"665","messages":"666","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"667","messages":"668","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"571"},{"filePath":"669","messages":"670","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"671","messages":"672","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"673","messages":"674","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"675","messages":"676","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"677","messages":"678","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"679","messages":"680","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"681","messages":"682","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"683","messages":"684","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"685","messages":"686","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"687","messages":"688","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"689","messages":"690","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"691","messages":"692","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"693","messages":"694","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"695","messages":"696","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"697","messages":"698","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"699","messages":"700","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"701","messages":"702","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"703","messages":"704","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"705","messages":"706","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"707","messages":"708","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"709","messages":"710","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"711","messages":"712","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"713","messages":"714","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"715","messages":"716","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"717","messages":"718","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"719","messages":"720","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"721","messages":"722","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"723","messages":"724","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"725","messages":"726","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"571"},{"filePath":"727","messages":"728","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"729","messages":"730","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"556"},{"filePath":"731","messages":"732","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"421"},{"filePath":"733","messages":"734","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"735","messages":"736","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"737","messages":"738","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"642"},{"filePath":"739","messages":"740","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"741","messages":"742","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"743","messages":"744","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"745","messages":"746","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"747","messages":"748","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"749","messages":"750","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"751","messages":"752","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"753","messages":"754","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"755","messages":"756","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"757","messages":"758","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"759","messages":"760","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"761","messages":"762","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"556"},{"filePath":"763","messages":"764","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"765","messages":"766","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"571"},{"filePath":"767","messages":"768","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"769","messages":"770","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"571"},{"filePath":"771","messages":"772","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"773","messages":"774","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"775","messages":"776","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"777","messages":"778","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"779","messages":"780","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"781","messages":"782","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"783","messages":"784","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"424"},{"filePath":"785","messages":"786","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"787","messages":"788","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"433"},{"filePath":"789","messages":"790","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"791","messages":"792","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"793","messages":"794","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"556"},{"filePath":"795","messages":"796","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"797","messages":"798","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"799","messages":"800","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"801","messages":"802","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"803","messages":"804","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"805","messages":"806","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"807","messages":"808","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"809","messages":"810","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"811","messages":"812","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},{"filePath":"813","messages":"814","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"436"},{"filePath":"815","messages":"816","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"817"},{"filePath":"818","messages":"819","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"820","messages":"821","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"427"},{"filePath":"822","messages":"823","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"439"},{"filePath":"824","messages":"825","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"826","usedDeprecatedRules":"827"},{"filePath":"828","messages":"829","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"412"},{"filePath":"830","messages":"831","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"430"},"/Users/wangyongqi/baidu/learn/debug-react-new/src/index.js",["832"],"import {React, ReactDOM} from './adaptation';\nimport './index.css';\nimport App from './App';\nimport TestPage from './TestPage';\n\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n",["833","834"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/App.js",[],["835","836"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/adaptation.js",[],["837","838"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/index.js",[],["839"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-refresh/runtime.js",[],["840"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactLazy.js",[],["841"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/memo.js",[],["842"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactBaseClasses.js",[],["843"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactChildren.js",[],["844"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/createScope.js",[],["845"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactSymbols.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMClientInjection.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactPortal.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMRoot.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/ReactControlledComponent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/ReactDOMEventListener.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/ReactDOMEventReplaying.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventPluginUtils.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SelectEventPlugin.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SimpleEventPlugin.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactWorkTags.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/HTMLNodeType.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/BeforeInputEventPlugin.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/forEachAccumulated.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventSystemFlags.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/getListener.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactTreeTraversal.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/DOMProperty.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMHostConfig.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactLazyComponent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticPointerEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/setTextContent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/isCustomComponent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/ReactDOMNullInputValuePropHook.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/getActiveElement.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticFocusEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticDragEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticKeyboardEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getEventCharCode.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMTextarea.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/DOMPropertyOperations.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/isEventSupported.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticCompositionEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/FallbackCompositionState.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMInput.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberTreeReflection.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberDevToolsHook.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberRoot.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberContext.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/warnValidStyle.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMSelection.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/forks/SchedulerHostConfig.mock.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/forks/SchedulerHostConfig.default.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/getNodeForCharacterOffset.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerFeatureFlags.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiber.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/Tracing.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactCapturedValue.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberUnwindWork.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberThrow.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberSuspenseContext.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHostContext.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberCommitWork.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberFundamental.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberScope.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberDeprecatedEvents.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberLazyComponent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactHookEffectTags.js",[],["846"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberErrorLogger.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactChildFiber.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberErrorDialog.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberClassComponent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/React.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/forwardRef.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactBatchConfig.js",[],["847"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMLegacy.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactVersion.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ExecutionEnvironment.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/ReactGenericBatching.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/isValidElementType.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactNoopUpdateQueue.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactDebugCurrentFrame.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-refresh/src/ReactFreshRuntime.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactRootTags.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactSharedInternals.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getEventTarget.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/reflection.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactTypes.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/TopLevelEventTypes.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DOMLegacyEventPluginSystem.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/setInnerHTML.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/assertValidProps.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/ReactDOMInvalidARIAHook.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/ReactDOMUnknownPropertyHook.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/describeComponentFrame.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticMouseEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticClipboardEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticUIEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/isTextInputElement.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticInputEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/dangerousStyleValue.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getVendorPrefixedEventName.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ToStringValue.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactCurrentFiber.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/voidElementTags.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/invokeGuardedCallbackImpl.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/enqueueTask.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerHostConfig.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getEventKey.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/getEventModifierState.js",[],["848"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/objectIs.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactSideEffectTags.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberWorkLoop.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberBeginWork.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/invariant.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/index.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOM.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/block.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactContext.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/createFundamentalComponent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/createEventResponder.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMComponentTree.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/checkReact.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactFeatureFlags.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/inline.dom.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventBatching.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventPropagators.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactCurrentBatchConfig.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMComponent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactInstanceMap.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/accumulateInto.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/ReactErrorUtils.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DOMEventProperties.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/inputValueTracking.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactInputSelection.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/index.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHostConfig.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactTypeOfMode.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/ReactControlledValuePropTypes.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/validAriaProperties.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/CSSShorthandProperty.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactUpdateQueue.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/CSSProperty.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/tracing.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberNewContext.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerPriorities.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberSuspenseComponent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHydrationContext.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHooks.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactCreateRef.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactElement.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/EventPluginRegistry.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/IsSomeRendererActing.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/hasBadMapPolyfill.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/getComponentName.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DOMEventListenerMap.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMOption.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/endsWith.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticTouchEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/ReactDOMSelect.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/possibleStandardNames.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberExpirationTime.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/client/validateDOMNesting.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberHotReloading.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/maxSigned31BitInt.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/forks/ReactFiberHostConfig.dom.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/SchedulerWithReactIntegration.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/TracingSubscriptions.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactProfilerTimer.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberCompleteWork.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactCurrentOwner.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/EnterLeaveEventPlugin.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/checkPassiveEvents.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DeprecatedDOMEventResponderSystem.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/legacy-events/SyntheticEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/HostConfigWithNoPersistence.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberSuspenseConfig.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/Scheduler.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerProfiling.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactStrictModeWarnings.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactCurrentDispatcher.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/EventListener.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/DOMNamespaces.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticTransitionEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/shared/shallowEqual.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/hyphenateStyleName.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/omittedCloseTags.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactDebugFiberPerf.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/ChangeEventPlugin.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberReconciler.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticWheelEvent.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/createMicrosoftUnsafeLocalFunction.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-reconciler/src/ReactFiberStack.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactHooks.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactElementValidator.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/DOMTopLevelEventTypes.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/sanitizeURL.js",[],["849"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react/src/ReactSharedInternals.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/scheduler/src/SchedulerMinHeap.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/shared/CSSPropertyOperations.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/TestPage.js",["850","851"],"import {React} from './adaptation';\nimport B from './B';\nconst {useState, useCallback, useEffect, Component} = React;\n\nclass A extends Component {\n render() {\n return
\n A 页面\n
\n }\n}\n\nexport default function TestPage(props) {\n const [state, setstate] = useState(true);\n\n const unmountB = () => {\n setstate(!state);\n }\n return (\n
\n HELLO WORLD\n\n \n {\n state ? : null\n }\n\n \n
\n );\n}",["852","853"],"/Users/wangyongqi/baidu/learn/debug-react-new/src/B.js",[],"/Users/wangyongqi/baidu/learn/debug-react-new/src/react/packages/react-dom/src/events/SyntheticAnimationEvent.js",[],{"ruleId":"854","severity":1,"message":"855","line":3,"column":8,"nodeType":"856","messageId":"857","endLine":3,"endColumn":11},{"ruleId":"858","replacedBy":"859"},{"ruleId":"860","replacedBy":"861"},{"ruleId":"858","replacedBy":"862"},{"ruleId":"860","replacedBy":"863"},{"ruleId":"858","replacedBy":"864"},{"ruleId":"860","replacedBy":"865"},{"ruleId":"866","replacedBy":"867"},{"ruleId":"866","replacedBy":"868"},{"ruleId":"866","replacedBy":"869"},{"ruleId":"866","replacedBy":"870"},{"ruleId":"866","replacedBy":"871"},{"ruleId":"866","replacedBy":"872"},{"ruleId":"866","replacedBy":"873"},{"ruleId":"866","replacedBy":"874"},{"ruleId":"866","replacedBy":"875"},{"ruleId":"866","replacedBy":"876"},{"ruleId":"866","replacedBy":"877"},{"ruleId":"854","severity":1,"message":"878","line":3,"column":18,"nodeType":"856","messageId":"857","endLine":3,"endColumn":29},{"ruleId":"854","severity":1,"message":"879","line":3,"column":31,"nodeType":"856","messageId":"857","endLine":3,"endColumn":40},{"ruleId":"858","replacedBy":"880"},{"ruleId":"860","replacedBy":"881"},"no-unused-vars","'App' is defined but never used.","Identifier","unusedVar","no-native-reassign",["882"],"no-negated-in-lhs",["883"],["882"],["883"],["882"],["883"],"react/jsx-space-before-closing",[],[],[],[],[],[],[],[],[],[],[],"'useCallback' is assigned a value but never used.","'useEffect' is assigned a value but never used.",["882"],["883"],"no-global-assign","no-unsafe-negation"] -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "src/react"] 2 | path = src/react 3 | url = git@github.com:facebook/react.git 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [TOC] 2 | 3 | 工欲善其事,必先利其器。 4 | 5 | 在学习raect源码时,如果能够在浏览器中单步调试,势必会加深理解。其实可以借助webpack的resolve.alias将react等指向本地的目录,这样就不会使用node_modules中的react包。 6 | 从而可以在本地调试react源码。 7 | ### 本地调试react源码步骤 8 | #### 1. 生成react项目 9 | 可以直接基于react cra cli生成项目,也可以自己基于react,webpack搭建环境,具体可以参考https://github.com/bozhouyongqi/react-redux-demo项目。下述主要针对使用cra的项目。 10 | #### 2. yarn run eject 暴露出webpack配置 11 | 这一步没有没什么,可以看到会生成config目录,里面包括webpack的配置文件和一些环境定义。但是很不幸,运行yarn run start会编译失败。出现下述错误。 12 | ``` 13 | Failed to compile. 14 | 15 | ./src/index.js 16 | Error: [BABEL] /xxx/debug-react-new/src/index.js: Cannot find module '@babel/plugin-syntax-jsx' (While processing: "xxx/debug-react-new/node_modules/babel-preset-react-app/index.js") 17 | ``` 18 | 19 | 意思是缺少@babel/plugin-syntax-jsx这个模块,那直接安装就行。 20 | 21 | ``` 22 | yarn add @babel/plugin-syntax-jsx -D 23 | ``` 24 | 之后再运行,就可以顺利启动项目了。 25 | ``` 26 | Compiled successfully! 27 | 28 | You can now view debug-react-new in the browser. 29 | 30 | Local: http://localhost:3000 31 | On Your Network: http://192.168.0.103:3000 32 | 33 | Note that the development build is not optimized. 34 | To create a production build, use yarn build. 35 | ``` 36 | 37 | #### 3.清理src目录 38 | 删除测试以及其他文件,只保留App等业务组件。并去除相关引用。 39 | 40 | #### 4.clone react源码至src目录下 41 | 这里使用git submodule命令引入react源码作为子模块,以方便后续代码单独管理。 42 | 43 | 进入src目录,执行 git submodule add git@github.com:facebook/react.git。 44 | 45 | 克隆之后,就可以在src/react中正常切换分支,而不影响主工程。我这里使用v16.13.1版本,因此可以切换至具体的tag. 46 | 47 | git checkout tags/v16.13.1 -b v16.13.1 48 | 49 | #### 5.修改webpack.config.js添加alias配置 50 | 51 | 注释掉原先的alias配置,添加新的,将react等指向本地 52 | ``` 53 | alias: { 54 | 'react': path.resolve(__dirname, '../src/react/packages/react'), 55 | 'react-dom': path.resolve(__dirname, '../src/react/packages/react-dom'), 56 | 'shared': path.resolve(__dirname, '../src/react/packages/shared'), 57 | 'react-reconciler': path.resolve(__dirname, '../src/react/packages/react-reconciler'), 58 | "legacy-events": path.resolve(__dirname, "../src/react/packages/legacy-events"), 59 | // 'react-events': path.resolve(__dirname, '../src/react/packages/events'), 60 | // scheduler: path.resolve(__dirname, "../src/react/packages/scheduler"), 61 | }, 62 | ``` 63 | 64 | 然后再运行项目,发现会出现如下错误。 65 | ``` 66 | Failed to compile. 67 | 68 | ./src/packages/react-reconciler/src/ReactFiberDeprecatedEvents.js 69 | Attempted import error: 'DEPRECATED_mountResponderInstance' is not exported from './ReactFiberHostConfig'. 70 | ``` 71 | 72 | #### 6.修改ReactFiberHostConfig文件 73 | 修改成如下 74 | ``` 75 | // We expect that our Rollup, Jest, and Flow configurations 76 | // always shim this module with the corresponding host config 77 | // (either provided by a renderer, or a generic shim for npm). 78 | // 79 | // We should never resolve to this file, but it exists to make 80 | // sure that if we *do* accidentally break the configuration, 81 | // the failure isn't silent. 82 | 83 | // invariant(false, 'This module must be shimmed by a specific renderer.'); 84 | 85 | export * from './forks/ReactFiberHostConfig.dom'; 86 | ``` 87 | 88 | 从注释中可以看出,这个文件实际上react并不会直接引入,会被打包工具依赖相应的宿主环境替换掉。 89 | 90 | 之后再启动项目,发现会报如下错误 91 | ``` 92 | Failed to compile. 93 | 94 | ./src/index.js 95 | Attempted import error: 'react' does not contain a default export (imported as 'React'). 96 | ``` 97 | 98 | #### 7.修改react引用方式 99 | 出现上述错误,到源码中查看源码,发现/debug-react-new/src/packages/react/index.js中确实没有默认导出。但是必须保证业务组件中要引入React,因为组件需要用babel-jsx插件进行转换(即使用React.createElement方法)。因此可以添加一个中间模块文件,来适配该问题。 100 | 101 | adaptation.js 102 | ``` 103 | import * as React from 'react'; 104 | import * as ReactDOM from 'react-dom'; 105 | 106 | export { 107 | React, 108 | ReactDOM 109 | }; 110 | ``` 111 | 之后在业务组件中从adaptation引入React和ReactDOM。 112 | 113 | 这一步之后,还是会出现新错误。 114 | 115 | ``` 116 | Failed to compile. 117 | 118 | Failed to load config "fbjs" to extend from. 119 | Referenced from: /xxx/baidu/learn/debug-react-new/src/react/.eslintrc.js 120 | ``` 121 | 122 | #### 8.关闭ESlint对fbjs,prettier插件的扩展 123 | 清空react源码项目下.eslintrc文件中的extends选项 124 | ``` 125 | extends: [ 126 | 'fbjs', 127 | 'prettier' 128 | ], 129 | 改为extends:[] 130 | ``` 131 | 132 | 依然会继续报错: 133 | ``` 134 | Failed to compile. 135 | 136 | Failed to load plugin 'no-for-of-loops' declared in 'src/react/.eslintrc.js': Cannot find module 'eslint-plugin-no-for-of-loops' 137 | Require stack: 138 | - /xxx/learn/debug-react-new/config/__placeholder__.js 139 | ``` 140 | 141 | #### 9.安装eslint-plugin-no-for-of-loops插件 142 | 143 | yarn add eslint-plugin-no-for-of-loops -D 144 | 145 | 继续报错: 146 | ``` 147 | Failed to compile. 148 | 149 | ./src/react/packages/react-reconciler/src/ReactFiberWorkLoop.js 150 | Attempted import error: 'unstable_flushAllWithoutAsserting' is not exported from 'scheduler' (imported as 'Scheduler'). 151 | ``` 152 | 153 | #### 10.修改scheduler/index.js文件 154 | 155 | /src/react/packages/scheduler/index.js 修改为 156 | 157 | ``` 158 | 'use strict'; 159 | 160 | export * from './src/Scheduler'; 161 | 162 | //添加以下 163 | export { 164 | unstable_flushAllWithoutAsserting, 165 | unstable_flushNumberOfYields, 166 | unstable_flushExpired, 167 | unstable_clearYields, 168 | unstable_flushUntilNextPaint, 169 | unstable_flushAll, 170 | unstable_yieldValue, 171 | unstable_advanceTime 172 | } from './src/SchedulerHostConfig.js'; 173 | ``` 174 | 175 | react/packages/scheduler/src/SchedulerHostConfig.js 修改为 176 | 177 | ``` 178 | 179 | // throw new Error('This module must be shimmed by a specific build.'); 180 | 181 | // 添加以下 182 | export { 183 | unstable_flushAllWithoutAsserting, 184 | unstable_flushNumberOfYields, 185 | unstable_flushExpired, 186 | unstable_clearYields, 187 | unstable_flushUntilNextPaint, 188 | unstable_flushAll, 189 | unstable_yieldValue, 190 | unstable_advanceTime 191 | } from './forks/SchedulerHostConfig.mock.js'; 192 | 193 | export { 194 | requestHostCallback, 195 | requestHostTimeout, 196 | cancelHostTimeout, 197 | shouldYieldToHost, 198 | getCurrentTime, 199 | forceFrameRate, 200 | requestPaint 201 | } from './forks/SchedulerHostConfig.default.js'; 202 | ``` 203 | 204 | 继续出现错误 205 | ``` 206 | Failed to compile. 207 | 208 | Failed to load plugin 'react-internal' declared in 'src/react/.eslintrc.js': Cannot find module 'eslint-plugin-react-internal' 209 | Require stack: 210 | - /xxx/learn/debug-react-new/config/__placeholder__.js 211 | ``` 212 | 213 | #### 11.解决react-internal错误 214 | 这是react在本地安装的,在源码的package中可以看到。但是安装之后依然会报错,这里决定删除这个插件,不进行安装。在debug-react-new/src/react/.eslintrc.js 中的plugins中将其删除。 215 | 216 | 下面是安装本地react-internals。笔者这里没有安装,直接不使用该插件。 217 | ``` 218 | yarn add link:./src/react/scripts/eslint-rules -D 219 | ``` 220 | 221 | 删除这个插件之后,还是报错: 222 | ``` 223 | Failed to compile. 224 | 225 | ./src/index.js 226 | Module not found: Can't resolve 'react/jsx-dev-runtime' in '/xxx/learn/debug-react-new/src' 227 | ``` 228 | 229 | > 8-11中的错误都是react eslint中的错误,可以试试在webpack.config.js中删除eslint插件。 230 | 231 | #### 12.修复react/jsx-dev-runtime报错 232 | 233 | 在webpack-config.js中可以看到hasJsxRuntime变量的取值过程,直接在函数中返回false. 234 | 235 | 修改完之后,会报一些react-internal有关的错误。 236 | 237 | ``` 238 | Line 1:1: Definition for rule 'react-internal/no-to-warn-dev-within-to-throw' was not found react-internal/no-to-warn-dev-within-to-throw 239 | Line 1:1: Definition for rule 'react-internal/invariant-args' was not found react-internal/invariant-args 240 | Line 1:1: Definition for rule 'react-internal/warning-args' was not found react-internal/warning-args 241 | Line 1:1: Definition for rule 'react-internal/no-production-logging' was not found react-internal/no-production-logging 242 | 243 | src/react/packages/react-dom/src/shared/validAriaProperties.js 244 | Line 1:1: Definition for rule 'react-internal/no-primitive-constructors' was not found react-internal/no-primitive-constructors 245 | Line 1:1: Definition for rule 'react-internal/no-to-warn-dev-within-to-throw' was not found react-internal/no-to-warn-dev-within-to-throw 246 | Line 1:1: 247 | ``` 248 | 249 | 可以到/xxx/learn/debug-react-new/src/react/.eslintrc.js中将react-internal相关的规则都注释掉。 250 | 251 | 可以看到会继续报如下错误: 252 | 253 | ``` 254 | Failed to compile. 255 | 256 | src/react/packages/react-dom/src/client/ReactDOM.js 257 | Line 241:9: Definition for rule 'react-internal/no-production-logging' was not found react-internal/no-production-logging 258 | 259 | src/react/packages/react-reconciler/src/ReactFiberHostConfig.js 260 | Line 10:1: Definition for rule 'react-internal/invariant-args' was not found react-internal/invariant-args 261 | Line 12:8: 'invariant' is defined but never used no-unused-vars 262 | 263 | src/react/packages/react-reconciler/src/ReactFiberReconciler.js 264 | Line 584:7: Definition for rule 'react-internal/no-production-logging' was not found react-internal/no-production-logging 265 | 266 | ``` 267 | 268 | 可以到对应的文件中将eslint注释删除掉。 269 | 270 | 至此,命令行中不会报错误了。但是浏览器中会报错误,提示__DEV__没有定义。这个简单了,在DefinePlugin中定义就行。 271 | 272 | #### 13.设置DefinePlugin插件 273 | 在/xxx/learn/debug-react-new/config/env.js中添加: 274 | ``` 275 | const stringified = { 276 | 'process.env': Object.keys(raw).reduce((env, key) => { 277 | env[key] = JSON.stringify(raw[key]); 278 | return env; 279 | }, {}), 280 | "__DEV__": true, 281 | "__PROFILE__": true, 282 | "__UMD__": true, 283 | "__EXPERIMENTAL__": true 284 | }; 285 | ``` 286 | 287 | 浏览器中还是会报错: 288 | ``` 289 | Uncaught Error: Internal React error: invariant() is meant to be replaced at compile time. There is no runtime version. 290 | ``` 291 | 292 | #### 14.修改invariant.js 293 | /xxx/debug-react-new/src/react/packages/shared/invariant.js 294 | 295 | ``` 296 | export default function invariant(condition, format, a, b, c, d, e, f) { 297 | 298 | if (condition) { 299 | return; 300 | } 301 | throw new Error( 302 | 'Internal React error: invariant() is meant to be replaced at compile ' + 303 | 'time. There is no runtime version.', 304 | ); 305 | } 306 | ``` 307 | 308 | 至此,大功告成,终于没有错误了。后面就可以针对源码进行断点调试或者打日志了。 309 | 310 | 311 | -------------------------------------------------------------------------------- /config/env.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const path = require('path'); 5 | const paths = require('./paths'); 6 | 7 | // Make sure that including paths.js after env.js will read .env variables. 8 | delete require.cache[require.resolve('./paths')]; 9 | 10 | const NODE_ENV = process.env.NODE_ENV; 11 | if (!NODE_ENV) { 12 | throw new Error( 13 | 'The NODE_ENV environment variable is required but was not specified.' 14 | ); 15 | } 16 | 17 | // https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use 18 | const dotenvFiles = [ 19 | `${paths.dotenv}.${NODE_ENV}.local`, 20 | // Don't include `.env.local` for `test` environment 21 | // since normally you expect tests to produce the same 22 | // results for everyone 23 | NODE_ENV !== 'test' && `${paths.dotenv}.local`, 24 | `${paths.dotenv}.${NODE_ENV}`, 25 | paths.dotenv, 26 | ].filter(Boolean); 27 | 28 | // Load environment variables from .env* files. Suppress warnings using silent 29 | // if this file is missing. dotenv will never modify any environment variables 30 | // that have already been set. Variable expansion is supported in .env files. 31 | // https://github.com/motdotla/dotenv 32 | // https://github.com/motdotla/dotenv-expand 33 | dotenvFiles.forEach(dotenvFile => { 34 | if (fs.existsSync(dotenvFile)) { 35 | require('dotenv-expand')( 36 | require('dotenv').config({ 37 | path: dotenvFile, 38 | }) 39 | ); 40 | } 41 | }); 42 | 43 | // We support resolving modules according to `NODE_PATH`. 44 | // This lets you use absolute paths in imports inside large monorepos: 45 | // https://github.com/facebook/create-react-app/issues/253. 46 | // It works similar to `NODE_PATH` in Node itself: 47 | // https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders 48 | // Note that unlike in Node, only *relative* paths from `NODE_PATH` are honored. 49 | // Otherwise, we risk importing Node.js core modules into an app instead of webpack shims. 50 | // https://github.com/facebook/create-react-app/issues/1023#issuecomment-265344421 51 | // We also resolve them to make sure all tools using them work consistently. 52 | const appDirectory = fs.realpathSync(process.cwd()); 53 | process.env.NODE_PATH = (process.env.NODE_PATH || '') 54 | .split(path.delimiter) 55 | .filter(folder => folder && !path.isAbsolute(folder)) 56 | .map(folder => path.resolve(appDirectory, folder)) 57 | .join(path.delimiter); 58 | 59 | // Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be 60 | // injected into the application via DefinePlugin in webpack configuration. 61 | const REACT_APP = /^REACT_APP_/i; 62 | 63 | function getClientEnvironment(publicUrl) { 64 | const raw = Object.keys(process.env) 65 | .filter(key => REACT_APP.test(key)) 66 | .reduce( 67 | (env, key) => { 68 | env[key] = process.env[key]; 69 | return env; 70 | }, 71 | { 72 | // Useful for determining whether we’re running in production mode. 73 | // Most importantly, it switches React into the correct mode. 74 | NODE_ENV: process.env.NODE_ENV || 'development', 75 | // Useful for resolving the correct path to static assets in `public`. 76 | // For example, . 77 | // This should only be used as an escape hatch. Normally you would put 78 | // images into the `src` and `import` them in code to get their paths. 79 | PUBLIC_URL: publicUrl, 80 | // We support configuring the sockjs pathname during development. 81 | // These settings let a developer run multiple simultaneous projects. 82 | // They are used as the connection `hostname`, `pathname` and `port` 83 | // in webpackHotDevClient. They are used as the `sockHost`, `sockPath` 84 | // and `sockPort` options in webpack-dev-server. 85 | WDS_SOCKET_HOST: process.env.WDS_SOCKET_HOST, 86 | WDS_SOCKET_PATH: process.env.WDS_SOCKET_PATH, 87 | WDS_SOCKET_PORT: process.env.WDS_SOCKET_PORT, 88 | // Whether or not react-refresh is enabled. 89 | // react-refresh is not 100% stable at this time, 90 | // which is why it's disabled by default. 91 | // It is defined here so it is available in the webpackHotDevClient. 92 | FAST_REFRESH: process.env.FAST_REFRESH !== 'false', 93 | } 94 | ); 95 | // Stringify all values so we can feed into webpack DefinePlugin 96 | const stringified = { 97 | 'process.env': Object.keys(raw).reduce((env, key) => { 98 | env[key] = JSON.stringify(raw[key]); 99 | return env; 100 | }, {}), 101 | "__DEV__": true, 102 | "__PROFILE__": true, 103 | "__UMD__": true, 104 | "__EXPERIMENTAL__": true 105 | }; 106 | 107 | return { raw, stringified }; 108 | } 109 | 110 | module.exports = getClientEnvironment; 111 | -------------------------------------------------------------------------------- /config/getHttpsConfig.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const path = require('path'); 5 | const crypto = require('crypto'); 6 | const chalk = require('react-dev-utils/chalk'); 7 | const paths = require('./paths'); 8 | 9 | // Ensure the certificate and key provided are valid and if not 10 | // throw an easy to debug error 11 | function validateKeyAndCerts({ cert, key, keyFile, crtFile }) { 12 | let encrypted; 13 | try { 14 | // publicEncrypt will throw an error with an invalid cert 15 | encrypted = crypto.publicEncrypt(cert, Buffer.from('test')); 16 | } catch (err) { 17 | throw new Error( 18 | `The certificate "${chalk.yellow(crtFile)}" is invalid.\n${err.message}` 19 | ); 20 | } 21 | 22 | try { 23 | // privateDecrypt will throw an error with an invalid key 24 | crypto.privateDecrypt(key, encrypted); 25 | } catch (err) { 26 | throw new Error( 27 | `The certificate key "${chalk.yellow(keyFile)}" is invalid.\n${ 28 | err.message 29 | }` 30 | ); 31 | } 32 | } 33 | 34 | // Read file and throw an error if it doesn't exist 35 | function readEnvFile(file, type) { 36 | if (!fs.existsSync(file)) { 37 | throw new Error( 38 | `You specified ${chalk.cyan( 39 | type 40 | )} in your env, but the file "${chalk.yellow(file)}" can't be found.` 41 | ); 42 | } 43 | return fs.readFileSync(file); 44 | } 45 | 46 | // Get the https config 47 | // Return cert files if provided in env, otherwise just true or false 48 | function getHttpsConfig() { 49 | const { SSL_CRT_FILE, SSL_KEY_FILE, HTTPS } = process.env; 50 | const isHttps = HTTPS === 'true'; 51 | 52 | if (isHttps && SSL_CRT_FILE && SSL_KEY_FILE) { 53 | const crtFile = path.resolve(paths.appPath, SSL_CRT_FILE); 54 | const keyFile = path.resolve(paths.appPath, SSL_KEY_FILE); 55 | const config = { 56 | cert: readEnvFile(crtFile, 'SSL_CRT_FILE'), 57 | key: readEnvFile(keyFile, 'SSL_KEY_FILE'), 58 | }; 59 | 60 | validateKeyAndCerts({ ...config, keyFile, crtFile }); 61 | return config; 62 | } 63 | return isHttps; 64 | } 65 | 66 | module.exports = getHttpsConfig; 67 | -------------------------------------------------------------------------------- /config/jest/cssTransform.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // This is a custom Jest transformer turning style imports into empty objects. 4 | // http://facebook.github.io/jest/docs/en/webpack.html 5 | 6 | module.exports = { 7 | process() { 8 | return 'module.exports = {};'; 9 | }, 10 | getCacheKey() { 11 | // The output is always the same. 12 | return 'cssTransform'; 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /config/jest/fileTransform.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const path = require('path'); 4 | const camelcase = require('camelcase'); 5 | 6 | // This is a custom Jest transformer turning file imports into filenames. 7 | // http://facebook.github.io/jest/docs/en/webpack.html 8 | 9 | module.exports = { 10 | process(src, filename) { 11 | const assetFilename = JSON.stringify(path.basename(filename)); 12 | 13 | if (filename.match(/\.svg$/)) { 14 | // Based on how SVGR generates a component name: 15 | // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6 16 | const pascalCaseFilename = camelcase(path.parse(filename).name, { 17 | pascalCase: true, 18 | }); 19 | const componentName = `Svg${pascalCaseFilename}`; 20 | return `const React = require('react'); 21 | module.exports = { 22 | __esModule: true, 23 | default: ${assetFilename}, 24 | ReactComponent: React.forwardRef(function ${componentName}(props, ref) { 25 | return { 26 | $$typeof: Symbol.for('react.element'), 27 | type: 'svg', 28 | ref: ref, 29 | key: null, 30 | props: Object.assign({}, props, { 31 | children: ${assetFilename} 32 | }) 33 | }; 34 | }), 35 | };`; 36 | } 37 | 38 | return `module.exports = ${assetFilename};`; 39 | }, 40 | }; 41 | -------------------------------------------------------------------------------- /config/modules.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | const path = require('path'); 5 | const paths = require('./paths'); 6 | const chalk = require('react-dev-utils/chalk'); 7 | const resolve = require('resolve'); 8 | 9 | /** 10 | * Get additional module paths based on the baseUrl of a compilerOptions object. 11 | * 12 | * @param {Object} options 13 | */ 14 | function getAdditionalModulePaths(options = {}) { 15 | const baseUrl = options.baseUrl; 16 | 17 | if (!baseUrl) { 18 | return ''; 19 | } 20 | 21 | const baseUrlResolved = path.resolve(paths.appPath, baseUrl); 22 | 23 | // We don't need to do anything if `baseUrl` is set to `node_modules`. This is 24 | // the default behavior. 25 | if (path.relative(paths.appNodeModules, baseUrlResolved) === '') { 26 | return null; 27 | } 28 | 29 | // Allow the user set the `baseUrl` to `appSrc`. 30 | if (path.relative(paths.appSrc, baseUrlResolved) === '') { 31 | return [paths.appSrc]; 32 | } 33 | 34 | // If the path is equal to the root directory we ignore it here. 35 | // We don't want to allow importing from the root directly as source files are 36 | // not transpiled outside of `src`. We do allow importing them with the 37 | // absolute path (e.g. `src/Components/Button.js`) but we set that up with 38 | // an alias. 39 | if (path.relative(paths.appPath, baseUrlResolved) === '') { 40 | return null; 41 | } 42 | 43 | // Otherwise, throw an error. 44 | throw new Error( 45 | chalk.red.bold( 46 | "Your project's `baseUrl` can only be set to `src` or `node_modules`." + 47 | ' Create React App does not support other values at this time.' 48 | ) 49 | ); 50 | } 51 | 52 | /** 53 | * Get webpack aliases based on the baseUrl of a compilerOptions object. 54 | * 55 | * @param {*} options 56 | */ 57 | function getWebpackAliases(options = {}) { 58 | const baseUrl = options.baseUrl; 59 | 60 | if (!baseUrl) { 61 | return {}; 62 | } 63 | 64 | const baseUrlResolved = path.resolve(paths.appPath, baseUrl); 65 | 66 | if (path.relative(paths.appPath, baseUrlResolved) === '') { 67 | return { 68 | src: paths.appSrc, 69 | }; 70 | } 71 | } 72 | 73 | /** 74 | * Get jest aliases based on the baseUrl of a compilerOptions object. 75 | * 76 | * @param {*} options 77 | */ 78 | function getJestAliases(options = {}) { 79 | const baseUrl = options.baseUrl; 80 | 81 | if (!baseUrl) { 82 | return {}; 83 | } 84 | 85 | const baseUrlResolved = path.resolve(paths.appPath, baseUrl); 86 | 87 | if (path.relative(paths.appPath, baseUrlResolved) === '') { 88 | return { 89 | '^src/(.*)$': '/src/$1', 90 | }; 91 | } 92 | } 93 | 94 | function getModules() { 95 | // Check if TypeScript is setup 96 | const hasTsConfig = fs.existsSync(paths.appTsConfig); 97 | const hasJsConfig = fs.existsSync(paths.appJsConfig); 98 | 99 | if (hasTsConfig && hasJsConfig) { 100 | throw new Error( 101 | 'You have both a tsconfig.json and a jsconfig.json. If you are using TypeScript please remove your jsconfig.json file.' 102 | ); 103 | } 104 | 105 | let config; 106 | 107 | // If there's a tsconfig.json we assume it's a 108 | // TypeScript project and set up the config 109 | // based on tsconfig.json 110 | if (hasTsConfig) { 111 | const ts = require(resolve.sync('typescript', { 112 | basedir: paths.appNodeModules, 113 | })); 114 | config = ts.readConfigFile(paths.appTsConfig, ts.sys.readFile).config; 115 | // Otherwise we'll check if there is jsconfig.json 116 | // for non TS projects. 117 | } else if (hasJsConfig) { 118 | config = require(paths.appJsConfig); 119 | } 120 | 121 | config = config || {}; 122 | const options = config.compilerOptions || {}; 123 | 124 | const additionalModulePaths = getAdditionalModulePaths(options); 125 | 126 | return { 127 | additionalModulePaths: additionalModulePaths, 128 | webpackAliases: getWebpackAliases(options), 129 | jestAliases: getJestAliases(options), 130 | hasTsConfig, 131 | }; 132 | } 133 | 134 | module.exports = getModules(); 135 | -------------------------------------------------------------------------------- /config/paths.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const path = require('path'); 4 | const fs = require('fs'); 5 | const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath'); 6 | 7 | // Make sure any symlinks in the project folder are resolved: 8 | // https://github.com/facebook/create-react-app/issues/637 9 | const appDirectory = fs.realpathSync(process.cwd()); 10 | const resolveApp = relativePath => path.resolve(appDirectory, relativePath); 11 | 12 | // We use `PUBLIC_URL` environment variable or "homepage" field to infer 13 | // "public path" at which the app is served. 14 | // webpack needs to know it to put the right