mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-24 09:25:15 +00:00
1 line
62 KiB
JSON
1 line
62 KiB
JSON
{"ast":null,"code":"/** @license React vundefined\n * react-refresh-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function () {\n 'use strict'; // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n\n var REACT_ELEMENT_TYPE = 0xeac7;\n var REACT_PORTAL_TYPE = 0xeaca;\n var REACT_FRAGMENT_TYPE = 0xeacb;\n var REACT_STRICT_MODE_TYPE = 0xeacc;\n var REACT_PROFILER_TYPE = 0xead2;\n var REACT_PROVIDER_TYPE = 0xeacd;\n var REACT_CONTEXT_TYPE = 0xeace;\n var REACT_FORWARD_REF_TYPE = 0xead0;\n var REACT_SUSPENSE_TYPE = 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = 0xead8;\n var REACT_MEMO_TYPE = 0xead3;\n var REACT_LAZY_TYPE = 0xead4;\n var REACT_BLOCK_TYPE = 0xead9;\n var REACT_SERVER_BLOCK_TYPE = 0xeada;\n var REACT_FUNDAMENTAL_TYPE = 0xead5;\n var REACT_RESPONDER_TYPE = 0xead6;\n var REACT_SCOPE_TYPE = 0xead7;\n var REACT_OPAQUE_ID_TYPE = 0xeae0;\n var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\n var REACT_OFFSCREEN_TYPE = 0xeae2;\n var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\n if (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_RESPONDER_TYPE = symbolFor('react.responder');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n }\n\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.\n // It's OK to reference families, but use WeakMap/Set for types.\n\n var allFamiliesByID = new Map();\n var allFamiliesByType = new PossiblyWeakMap();\n var allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families\n // that have actually been edited here. This keeps checks fast.\n // $FlowIssue\n\n var updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.\n // It is an array of [Family, NextType] tuples.\n\n var pendingUpdates = []; // This is injected by the renderer via DevTools global hook.\n\n var helpersByRendererID = new Map();\n var helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.\n\n var mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit.\n\n var failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root.\n // It needs to be weak because we do this even for roots that failed to mount.\n // If there is no WeakMap, we won't attempt to do retrying.\n // $FlowIssue\n\n var rootElements = // $FlowIssue\n typeof WeakMap === 'function' ? new WeakMap() : null;\n var isPerformingRefresh = false;\n\n function computeFullKey(signature) {\n if (signature.fullKey !== null) {\n return signature.fullKey;\n }\n\n var fullKey = signature.ownKey;\n var hooks;\n\n try {\n hooks = signature.getCustomHooks();\n } catch (err) {\n // This can happen in an edge case, e.g. if expression like Foo.useSomething\n // depends on Foo which is lazily initialized during rendering.\n // In that case just assume we'll have to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n\n if (typeof hook !== 'function') {\n // Something's wrong. Assume we need to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n var nestedHookSignature = allSignaturesByType.get(hook);\n\n if (nestedHookSignature === undefined) {\n // No signature means Hook wasn't in the source code, e.g. in a library.\n // We'll skip it because we can assume it won't change during this session.\n continue;\n }\n\n var nestedHookKey = computeFullKey(nestedHookSignature);\n\n if (nestedHookSignature.forceReset) {\n signature.forceReset = true;\n }\n\n fullKey += '\\n---\\n' + nestedHookKey;\n }\n\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n function haveEqualSignatures(prevType, nextType) {\n var prevSignature = allSignaturesByType.get(prevType);\n var nextSignature = allSignaturesByType.get(nextType);\n\n if (prevSignature === undefined && nextSignature === undefined) {\n return true;\n }\n\n if (prevSignature === undefined || nextSignature === undefined) {\n return false;\n }\n\n if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {\n return false;\n }\n\n if (nextSignature.forceReset) {\n return false;\n }\n\n return true;\n }\n\n function isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n }\n\n function canPreserveStateBetween(prevType, nextType) {\n if (isReactClass(prevType) || isReactClass(nextType)) {\n return false;\n }\n\n if (haveEqualSignatures(prevType, nextType)) {\n return true;\n }\n\n return false;\n }\n\n function resolveFamily(type) {\n // Only check updated types to keep lookups fast.\n return updatedFamiliesByType.get(type);\n } // If we didn't care about IE11, we could use new Map/Set(iterable).\n\n\n function cloneMap(map) {\n var clone = new Map();\n map.forEach(function (value, key) {\n clone.set(key, value);\n });\n return clone;\n }\n\n function cloneSet(set) {\n var clone = new Set();\n set.forEach(function (value) {\n clone.add(value);\n });\n return clone;\n }\n\n function performReactRefresh() {\n if (pendingUpdates.length === 0) {\n return null;\n }\n\n if (isPerformingRefresh) {\n return null;\n }\n\n isPerformingRefresh = true;\n\n try {\n var staleFamilies = new Set();\n var updatedFamilies = new Set();\n var updates = pendingUpdates;\n pendingUpdates = [];\n updates.forEach(function (_ref) {\n var family = _ref[0],\n nextType = _ref[1]; // Now that we got a real edit, we can create associations\n // that will be read by the React reconciler.\n\n var prevType = family.current;\n updatedFamiliesByType.set(prevType, family);\n updatedFamiliesByType.set(nextType, family);\n family.current = nextType; // Determine whether this should be a re-render or a re-mount.\n\n if (canPreserveStateBetween(prevType, nextType)) {\n updatedFamilies.add(family);\n } else {\n staleFamilies.add(family);\n }\n }); // TODO: rename these fields to something more meaningful.\n\n var update = {\n updatedFamilies: updatedFamilies,\n // Families that will re-render preserving state\n staleFamilies: staleFamilies // Families that will be remounted\n\n };\n helpersByRendererID.forEach(function (helpers) {\n // Even if there are no roots, set the handler on first update.\n // This ensures that if *new* roots are mounted, they'll use the resolve handler.\n helpers.setRefreshHandler(resolveFamily);\n });\n var didError = false;\n var firstError = null; // We snapshot maps and sets that are mutated during commits.\n // If we don't do this, there is a risk they will be mutated while\n // we iterate over them. For example, trying to recover a failed root\n // may cause another root to be added to the failed list -- an infinite loop.\n\n var failedRootsSnapshot = cloneSet(failedRoots);\n var mountedRootsSnapshot = cloneSet(mountedRoots);\n var helpersByRootSnapshot = cloneMap(helpersByRoot);\n failedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!failedRoots.has(root)) {// No longer failed.\n }\n\n if (rootElements === null) {\n return;\n }\n\n if (!rootElements.has(root)) {\n return;\n }\n\n var element = rootElements.get(root);\n\n try {\n helpers.scheduleRoot(root, element);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n mountedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!mountedRoots.has(root)) {// No longer mounted.\n }\n\n try {\n helpers.scheduleRefresh(root, update);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n\n if (didError) {\n throw firstError;\n }\n\n return update;\n } finally {\n isPerformingRefresh = false;\n }\n }\n\n function register(type, id) {\n {\n if (type === null) {\n return;\n }\n\n if (typeof type !== 'function' && typeof type !== 'object') {\n return;\n } // This can happen in an edge case, e.g. if we register\n // return value of a HOC but it returns a cached component.\n // Ignore anything but the first registration for each type.\n\n\n if (allFamiliesByType.has(type)) {\n return;\n } // Create family or remember to update it.\n // None of this bookkeeping affects reconciliation\n // until the first performReactRefresh() call above.\n\n\n var family = allFamiliesByID.get(id);\n\n if (family === undefined) {\n family = {\n current: type\n };\n allFamiliesByID.set(id, family);\n } else {\n pendingUpdates.push([family, type]);\n }\n\n allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.\n\n if (typeof type === 'object' && type !== null) {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n register(type.render, id + '$render');\n break;\n\n case REACT_MEMO_TYPE:\n register(type.type, id + '$type');\n break;\n }\n }\n }\n }\n\n function setSignature(type, key) {\n var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;\n {\n allSignaturesByType.set(type, {\n forceReset: forceReset,\n ownKey: key,\n fullKey: null,\n getCustomHooks: getCustomHooks || function () {\n return [];\n }\n });\n }\n } // This is lazily called during first render for a type.\n // It captures Hook list at that time so inline requires don't break comparisons.\n\n\n function collectCustomHooksForSignature(type) {\n {\n var signature = allSignaturesByType.get(type);\n\n if (signature !== undefined) {\n computeFullKey(signature);\n }\n }\n }\n\n function getFamilyByID(id) {\n {\n return allFamiliesByID.get(id);\n }\n }\n\n function getFamilyByType(type) {\n {\n return allFamiliesByType.get(type);\n }\n }\n\n function findAffectedHostInstances(families) {\n {\n var affectedInstances = new Set();\n mountedRoots.forEach(function (root) {\n var helpers = helpersByRoot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);\n instancesForRoot.forEach(function (inst) {\n affectedInstances.add(inst);\n });\n });\n return affectedInstances;\n }\n }\n\n function injectIntoGlobalHook(globalObject) {\n {\n // For React Native, the global hook will be set up by require('react-devtools-core').\n // That code will run before us. So we need to monkeypatch functions on existing hook.\n // For React Web, the global hook will be set up by the extension.\n // This will also run before us.\n var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook === undefined) {\n // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.\n // Note that in this case it's important that renderer code runs *after* this method call.\n // Otherwise, the renderer will think that there is no global hook, and won't do the injection.\n var nextID = 0;\n globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {\n renderers: new Map(),\n supportsFiber: true,\n inject: function (injected) {\n return nextID++;\n },\n onScheduleFiberRoot: function (id, root, children) {},\n onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},\n onCommitFiberUnmount: function () {}\n };\n } // Here, we just want to get a reference to scheduleRefresh.\n\n\n var oldInject = hook.inject;\n\n hook.inject = function (injected) {\n var id = oldInject.apply(this, arguments);\n\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n\n return id;\n }; // Do the same for any already injected roots.\n // This is useful if ReactDOM has already been initialized.\n // https://github.com/facebook/react/issues/17626\n\n\n hook.renderers.forEach(function (injected, id) {\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n }); // We also want to track currently mounted roots.\n\n var oldOnCommitFiberRoot = hook.onCommitFiberRoot;\n\n var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {};\n\n hook.onScheduleFiberRoot = function (id, root, children) {\n if (!isPerformingRefresh) {\n // If it was intentionally scheduled, don't attempt to restore.\n // This includes intentionally scheduled unmounts.\n failedRoots.delete(root);\n\n if (rootElements !== null) {\n rootElements.set(root, children);\n }\n }\n\n return oldOnScheduleFiberRoot.apply(this, arguments);\n };\n\n hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {\n var helpers = helpersByRendererID.get(id);\n\n if (helpers === undefined) {\n return;\n }\n\n helpersByRoot.set(root, helpers);\n var current = root.current;\n var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.\n // This logic is copy-pasted from similar logic in the DevTools backend.\n // If this breaks with some refactoring, you'll want to update DevTools too.\n\n if (alternate !== null) {\n var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null;\n var isMounted = current.memoizedState != null && current.memoizedState.element != null;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n mountedRoots.add(root);\n failedRoots.delete(root);\n } else if (wasMounted && isMounted) ;else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n mountedRoots.delete(root);\n\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n } else {\n helpersByRoot.delete(root);\n }\n } else if (!wasMounted && !isMounted) {\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n }\n }\n } else {\n // Mount a new root.\n mountedRoots.add(root);\n }\n\n return oldOnCommitFiberRoot.apply(this, arguments);\n };\n }\n }\n\n function hasUnrecoverableErrors() {\n // TODO: delete this after removing dependency in RN.\n return false;\n } // Exposed for testing.\n\n\n function _getMountedRootCount() {\n {\n return mountedRoots.size;\n }\n } // This is a wrapper over more primitive functions for setting signature.\n // Signatures let us decide whether the Hook order has changed on refresh.\n //\n // This function is intended to be used as a transform target, e.g.:\n // var _s = createSignatureFunctionForTransform()\n //\n // function Hello() {\n // const [foo, setFoo] = useState(0);\n // const value = useCustomHook();\n // _s(); /* Second call triggers collecting the custom Hook list.\n // * This doesn't happen during the module evaluation because we\n // * don't want to change the module order with inline requires.\n // * Next calls are noops. */\n // return <h1>Hi</h1>;\n // }\n //\n // /* First call specifies the signature: */\n // _s(\n // Hello,\n // 'useState{[foo, setFoo]}(0)',\n // () => [useCustomHook], /* Lazy to avoid triggering inline requires */\n // );\n\n\n function createSignatureFunctionForTransform() {\n {\n // We'll fill in the signature in two steps.\n // First, we'll know the signature itself. This happens outside the component.\n // Then, we'll know the references to custom Hooks. This happens inside the component.\n // After that, the returned function will be a fast path no-op.\n var status = 'needsSignature';\n var savedType;\n var hasCustomHooks;\n return function (type, key, forceReset, getCustomHooks) {\n switch (status) {\n case 'needsSignature':\n if (type !== undefined) {\n // If we received an argument, this is the initial registration call.\n savedType = type;\n hasCustomHooks = typeof getCustomHooks === 'function';\n setSignature(type, key, forceReset, getCustomHooks); // The next call we expect is from inside a function, to fill in the custom Hooks.\n\n status = 'needsCustomHooks';\n }\n\n break;\n\n case 'needsCustomHooks':\n if (hasCustomHooks) {\n collectCustomHooksForSignature(savedType);\n }\n\n status = 'resolved';\n break;\n }\n\n return type;\n };\n }\n }\n\n function isLikelyComponentType(type) {\n {\n switch (typeof type) {\n case 'function':\n {\n // First, deal with classes.\n if (type.prototype != null) {\n if (type.prototype.isReactComponent) {\n // React class.\n return true;\n }\n\n var ownNames = Object.getOwnPropertyNames(type.prototype);\n\n if (ownNames.length > 1 || ownNames[0] !== 'constructor') {\n // This looks like a class.\n return false;\n } // eslint-disable-next-line no-proto\n\n\n if (type.prototype.__proto__ !== Object.prototype) {\n // It has a superclass.\n return false;\n } // Pass through.\n // This looks like a regular function with empty prototype.\n\n } // For plain functions and arrows, use name as a heuristic.\n\n\n var name = type.name || type.displayName;\n return typeof name === 'string' && /^[A-Z]/.test(name);\n }\n\n case 'object':\n {\n if (type != null) {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n case REACT_MEMO_TYPE:\n // Definitely React components.\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n }\n\n default:\n {\n return false;\n }\n }\n }\n }\n\n exports._getMountedRootCount = _getMountedRootCount;\n exports.collectCustomHooksForSignature = collectCustomHooksForSignature;\n exports.createSignatureFunctionForTransform = createSignatureFunctionForTransform;\n exports.findAffectedHostInstances = findAffectedHostInstances;\n exports.getFamilyByID = getFamilyByID;\n exports.getFamilyByType = getFamilyByType;\n exports.hasUnrecoverableErrors = hasUnrecoverableErrors;\n exports.injectIntoGlobalHook = injectIntoGlobalHook;\n exports.isLikelyComponentType = isLikelyComponentType;\n exports.performReactRefresh = performReactRefresh;\n exports.register = register;\n exports.setSignature = setSignature;\n })();\n}","map":{"version":3,"sources":["/app/node_modules/react-refresh/cjs/react-refresh-runtime.development.js"],"names":["process","env","NODE_ENV","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_SERVER_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","REACT_OPAQUE_ID_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_OFFSCREEN_TYPE","REACT_LEGACY_HIDDEN_TYPE","Symbol","for","symbolFor","PossiblyWeakMap","WeakMap","Map","allFamiliesByID","allFamiliesByType","allSignaturesByType","updatedFamiliesByType","pendingUpdates","helpersByRendererID","helpersByRoot","mountedRoots","Set","failedRoots","rootElements","isPerformingRefresh","computeFullKey","signature","fullKey","ownKey","hooks","getCustomHooks","err","forceReset","i","length","hook","nestedHookSignature","get","undefined","nestedHookKey","haveEqualSignatures","prevType","nextType","prevSignature","nextSignature","isReactClass","type","prototype","isReactComponent","canPreserveStateBetween","resolveFamily","cloneMap","map","clone","forEach","value","key","set","cloneSet","add","performReactRefresh","staleFamilies","updatedFamilies","updates","_ref","family","current","update","helpers","setRefreshHandler","didError","firstError","failedRootsSnapshot","mountedRootsSnapshot","helpersByRootSnapshot","root","Error","has","element","scheduleRoot","scheduleRefresh","register","id","push","$$typeof","render","setSignature","arguments","collectCustomHooksForSignature","getFamilyByID","getFamilyByType","findAffectedHostInstances","families","affectedInstances","instancesForRoot","findHostInstancesForRefresh","inst","injectIntoGlobalHook","globalObject","__REACT_DEVTOOLS_GLOBAL_HOOK__","nextID","renderers","supportsFiber","inject","injected","onScheduleFiberRoot","children","onCommitFiberRoot","maybePriorityLevel","onCommitFiberUnmount","oldInject","apply","oldOnCommitFiberRoot","oldOnScheduleFiberRoot","delete","alternate","wasMounted","memoizedState","isMounted","hasUnrecoverableErrors","_getMountedRootCount","size","createSignatureFunctionForTransform","status","savedType","hasCustomHooks","isLikelyComponentType","ownNames","Object","getOwnPropertyNames","__proto__","name","displayName","test","exports"],"mappings":"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","sourcesContent":["/** @license React vundefined\n * react-refresh-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_RESPONDER_TYPE = 0xead6;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_RESPONDER_TYPE = symbolFor('react.responder');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.\n// It's OK to reference families, but use WeakMap/Set for types.\n\nvar allFamiliesByID = new Map();\nvar allFamiliesByType = new PossiblyWeakMap();\nvar allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families\n// that have actually been edited here. This keeps checks fast.\n// $FlowIssue\n\nvar updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.\n// It is an array of [Family, NextType] tuples.\n\nvar pendingUpdates = []; // This is injected by the renderer via DevTools global hook.\n\nvar helpersByRendererID = new Map();\nvar helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.\n\nvar mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit.\n\nvar failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root.\n// It needs to be weak because we do this even for roots that failed to mount.\n// If there is no WeakMap, we won't attempt to do retrying.\n// $FlowIssue\n\nvar rootElements = // $FlowIssue\ntypeof WeakMap === 'function' ? new WeakMap() : null;\nvar isPerformingRefresh = false;\n\nfunction computeFullKey(signature) {\n if (signature.fullKey !== null) {\n return signature.fullKey;\n }\n\n var fullKey = signature.ownKey;\n var hooks;\n\n try {\n hooks = signature.getCustomHooks();\n } catch (err) {\n // This can happen in an edge case, e.g. if expression like Foo.useSomething\n // depends on Foo which is lazily initialized during rendering.\n // In that case just assume we'll have to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n\n if (typeof hook !== 'function') {\n // Something's wrong. Assume we need to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n var nestedHookSignature = allSignaturesByType.get(hook);\n\n if (nestedHookSignature === undefined) {\n // No signature means Hook wasn't in the source code, e.g. in a library.\n // We'll skip it because we can assume it won't change during this session.\n continue;\n }\n\n var nestedHookKey = computeFullKey(nestedHookSignature);\n\n if (nestedHookSignature.forceReset) {\n signature.forceReset = true;\n }\n\n fullKey += '\\n---\\n' + nestedHookKey;\n }\n\n signature.fullKey = fullKey;\n return fullKey;\n}\n\nfunction haveEqualSignatures(prevType, nextType) {\n var prevSignature = allSignaturesByType.get(prevType);\n var nextSignature = allSignaturesByType.get(nextType);\n\n if (prevSignature === undefined && nextSignature === undefined) {\n return true;\n }\n\n if (prevSignature === undefined || nextSignature === undefined) {\n return false;\n }\n\n if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {\n return false;\n }\n\n if (nextSignature.forceReset) {\n return false;\n }\n\n return true;\n}\n\nfunction isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n}\n\nfunction canPreserveStateBetween(prevType, nextType) {\n if (isReactClass(prevType) || isReactClass(nextType)) {\n return false;\n }\n\n if (haveEqualSignatures(prevType, nextType)) {\n return true;\n }\n\n return false;\n}\n\nfunction resolveFamily(type) {\n // Only check updated types to keep lookups fast.\n return updatedFamiliesByType.get(type);\n} // If we didn't care about IE11, we could use new Map/Set(iterable).\n\n\nfunction cloneMap(map) {\n var clone = new Map();\n map.forEach(function (value, key) {\n clone.set(key, value);\n });\n return clone;\n}\n\nfunction cloneSet(set) {\n var clone = new Set();\n set.forEach(function (value) {\n clone.add(value);\n });\n return clone;\n}\n\nfunction performReactRefresh() {\n\n if (pendingUpdates.length === 0) {\n return null;\n }\n\n if (isPerformingRefresh) {\n return null;\n }\n\n isPerformingRefresh = true;\n\n try {\n var staleFamilies = new Set();\n var updatedFamilies = new Set();\n var updates = pendingUpdates;\n pendingUpdates = [];\n updates.forEach(function (_ref) {\n var family = _ref[0],\n nextType = _ref[1];\n // Now that we got a real edit, we can create associations\n // that will be read by the React reconciler.\n var prevType = family.current;\n updatedFamiliesByType.set(prevType, family);\n updatedFamiliesByType.set(nextType, family);\n family.current = nextType; // Determine whether this should be a re-render or a re-mount.\n\n if (canPreserveStateBetween(prevType, nextType)) {\n updatedFamilies.add(family);\n } else {\n staleFamilies.add(family);\n }\n }); // TODO: rename these fields to something more meaningful.\n\n var update = {\n updatedFamilies: updatedFamilies,\n // Families that will re-render preserving state\n staleFamilies: staleFamilies // Families that will be remounted\n\n };\n helpersByRendererID.forEach(function (helpers) {\n // Even if there are no roots, set the handler on first update.\n // This ensures that if *new* roots are mounted, they'll use the resolve handler.\n helpers.setRefreshHandler(resolveFamily);\n });\n var didError = false;\n var firstError = null; // We snapshot maps and sets that are mutated during commits.\n // If we don't do this, there is a risk they will be mutated while\n // we iterate over them. For example, trying to recover a failed root\n // may cause another root to be added to the failed list -- an infinite loop.\n\n var failedRootsSnapshot = cloneSet(failedRoots);\n var mountedRootsSnapshot = cloneSet(mountedRoots);\n var helpersByRootSnapshot = cloneMap(helpersByRoot);\n failedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!failedRoots.has(root)) {// No longer failed.\n }\n\n if (rootElements === null) {\n return;\n }\n\n if (!rootElements.has(root)) {\n return;\n }\n\n var element = rootElements.get(root);\n\n try {\n helpers.scheduleRoot(root, element);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n mountedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!mountedRoots.has(root)) {// No longer mounted.\n }\n\n try {\n helpers.scheduleRefresh(root, update);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n\n if (didError) {\n throw firstError;\n }\n\n return update;\n } finally {\n isPerformingRefresh = false;\n }\n}\nfunction register(type, id) {\n {\n if (type === null) {\n return;\n }\n\n if (typeof type !== 'function' && typeof type !== 'object') {\n return;\n } // This can happen in an edge case, e.g. if we register\n // return value of a HOC but it returns a cached component.\n // Ignore anything but the first registration for each type.\n\n\n if (allFamiliesByType.has(type)) {\n return;\n } // Create family or remember to update it.\n // None of this bookkeeping affects reconciliation\n // until the first performReactRefresh() call above.\n\n\n var family = allFamiliesByID.get(id);\n\n if (family === undefined) {\n family = {\n current: type\n };\n allFamiliesByID.set(id, family);\n } else {\n pendingUpdates.push([family, type]);\n }\n\n allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.\n\n if (typeof type === 'object' && type !== null) {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n register(type.render, id + '$render');\n break;\n\n case REACT_MEMO_TYPE:\n register(type.type, id + '$type');\n break;\n }\n }\n }\n}\nfunction setSignature(type, key) {\n var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;\n\n {\n allSignaturesByType.set(type, {\n forceReset: forceReset,\n ownKey: key,\n fullKey: null,\n getCustomHooks: getCustomHooks || function () {\n return [];\n }\n });\n }\n} // This is lazily called during first render for a type.\n// It captures Hook list at that time so inline requires don't break comparisons.\n\nfunction collectCustomHooksForSignature(type) {\n {\n var signature = allSignaturesByType.get(type);\n\n if (signature !== undefined) {\n computeFullKey(signature);\n }\n }\n}\nfunction getFamilyByID(id) {\n {\n return allFamiliesByID.get(id);\n }\n}\nfunction getFamilyByType(type) {\n {\n return allFamiliesByType.get(type);\n }\n}\nfunction findAffectedHostInstances(families) {\n {\n var affectedInstances = new Set();\n mountedRoots.forEach(function (root) {\n var helpers = helpersByRoot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);\n instancesForRoot.forEach(function (inst) {\n affectedInstances.add(inst);\n });\n });\n return affectedInstances;\n }\n}\nfunction injectIntoGlobalHook(globalObject) {\n {\n // For React Native, the global hook will be set up by require('react-devtools-core').\n // That code will run before us. So we need to monkeypatch functions on existing hook.\n // For React Web, the global hook will be set up by the extension.\n // This will also run before us.\n var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook === undefined) {\n // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.\n // Note that in this case it's important that renderer code runs *after* this method call.\n // Otherwise, the renderer will think that there is no global hook, and won't do the injection.\n var nextID = 0;\n globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {\n renderers: new Map(),\n supportsFiber: true,\n inject: function (injected) {\n return nextID++;\n },\n onScheduleFiberRoot: function (id, root, children) {},\n onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},\n onCommitFiberUnmount: function () {}\n };\n } // Here, we just want to get a reference to scheduleRefresh.\n\n\n var oldInject = hook.inject;\n\n hook.inject = function (injected) {\n var id = oldInject.apply(this, arguments);\n\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n\n return id;\n }; // Do the same for any already injected roots.\n // This is useful if ReactDOM has already been initialized.\n // https://github.com/facebook/react/issues/17626\n\n\n hook.renderers.forEach(function (injected, id) {\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n }); // We also want to track currently mounted roots.\n\n var oldOnCommitFiberRoot = hook.onCommitFiberRoot;\n\n var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {};\n\n hook.onScheduleFiberRoot = function (id, root, children) {\n if (!isPerformingRefresh) {\n // If it was intentionally scheduled, don't attempt to restore.\n // This includes intentionally scheduled unmounts.\n failedRoots.delete(root);\n\n if (rootElements !== null) {\n rootElements.set(root, children);\n }\n }\n\n return oldOnScheduleFiberRoot.apply(this, arguments);\n };\n\n hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {\n var helpers = helpersByRendererID.get(id);\n\n if (helpers === undefined) {\n return;\n }\n\n helpersByRoot.set(root, helpers);\n var current = root.current;\n var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.\n // This logic is copy-pasted from similar logic in the DevTools backend.\n // If this breaks with some refactoring, you'll want to update DevTools too.\n\n if (alternate !== null) {\n var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null;\n var isMounted = current.memoizedState != null && current.memoizedState.element != null;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n mountedRoots.add(root);\n failedRoots.delete(root);\n } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n mountedRoots.delete(root);\n\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n } else {\n helpersByRoot.delete(root);\n }\n } else if (!wasMounted && !isMounted) {\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n }\n }\n } else {\n // Mount a new root.\n mountedRoots.add(root);\n }\n\n return oldOnCommitFiberRoot.apply(this, arguments);\n };\n }\n}\nfunction hasUnrecoverableErrors() {\n // TODO: delete this after removing dependency in RN.\n return false;\n} // Exposed for testing.\n\nfunction _getMountedRootCount() {\n {\n return mountedRoots.size;\n }\n} // This is a wrapper over more primitive functions for setting signature.\n// Signatures let us decide whether the Hook order has changed on refresh.\n//\n// This function is intended to be used as a transform target, e.g.:\n// var _s = createSignatureFunctionForTransform()\n//\n// function Hello() {\n// const [foo, setFoo] = useState(0);\n// const value = useCustomHook();\n// _s(); /* Second call triggers collecting the custom Hook list.\n// * This doesn't happen during the module evaluation because we\n// * don't want to change the module order with inline requires.\n// * Next calls are noops. */\n// return <h1>Hi</h1>;\n// }\n//\n// /* First call specifies the signature: */\n// _s(\n// Hello,\n// 'useState{[foo, setFoo]}(0)',\n// () => [useCustomHook], /* Lazy to avoid triggering inline requires */\n// );\n\nfunction createSignatureFunctionForTransform() {\n {\n // We'll fill in the signature in two steps.\n // First, we'll know the signature itself. This happens outside the component.\n // Then, we'll know the references to custom Hooks. This happens inside the component.\n // After that, the returned function will be a fast path no-op.\n var status = 'needsSignature';\n var savedType;\n var hasCustomHooks;\n return function (type, key, forceReset, getCustomHooks) {\n switch (status) {\n case 'needsSignature':\n if (type !== undefined) {\n // If we received an argument, this is the initial registration call.\n savedType = type;\n hasCustomHooks = typeof getCustomHooks === 'function';\n setSignature(type, key, forceReset, getCustomHooks); // The next call we expect is from inside a function, to fill in the custom Hooks.\n\n status = 'needsCustomHooks';\n }\n\n break;\n\n case 'needsCustomHooks':\n if (hasCustomHooks) {\n collectCustomHooksForSignature(savedType);\n }\n\n status = 'resolved';\n break;\n }\n\n return type;\n };\n }\n}\nfunction isLikelyComponentType(type) {\n {\n switch (typeof type) {\n case 'function':\n {\n // First, deal with classes.\n if (type.prototype != null) {\n if (type.prototype.isReactComponent) {\n // React class.\n return true;\n }\n\n var ownNames = Object.getOwnPropertyNames(type.prototype);\n\n if (ownNames.length > 1 || ownNames[0] !== 'constructor') {\n // This looks like a class.\n return false;\n } // eslint-disable-next-line no-proto\n\n\n if (type.prototype.__proto__ !== Object.prototype) {\n // It has a superclass.\n return false;\n } // Pass through.\n // This looks like a regular function with empty prototype.\n\n } // For plain functions and arrows, use name as a heuristic.\n\n\n var name = type.name || type.displayName;\n return typeof name === 'string' && /^[A-Z]/.test(name);\n }\n\n case 'object':\n {\n if (type != null) {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n case REACT_MEMO_TYPE:\n // Definitely React components.\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n }\n\n default:\n {\n return false;\n }\n }\n }\n}\n\nexports._getMountedRootCount = _getMountedRootCount;\nexports.collectCustomHooksForSignature = collectCustomHooksForSignature;\nexports.createSignatureFunctionForTransform = createSignatureFunctionForTransform;\nexports.findAffectedHostInstances = findAffectedHostInstances;\nexports.getFamilyByID = getFamilyByID;\nexports.getFamilyByType = getFamilyByType;\nexports.hasUnrecoverableErrors = hasUnrecoverableErrors;\nexports.injectIntoGlobalHook = injectIntoGlobalHook;\nexports.isLikelyComponentType = isLikelyComponentType;\nexports.performReactRefresh = performReactRefresh;\nexports.register = register;\nexports.setSignature = setSignature;\n })();\n}\n"]},"metadata":{},"sourceType":"script"} |