diff --git a/packages/next/compiled/@next/react-refresh-utils/ReactRefreshWebpackPlugin.js b/packages/next/compiled/@next/react-refresh-utils/ReactRefreshWebpackPlugin.js deleted file mode 100644 index 962d282aa1533..0000000000000 --- a/packages/next/compiled/@next/react-refresh-utils/ReactRefreshWebpackPlugin.js +++ /dev/null @@ -1,132 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -// Shared between webpack 4 and 5: -function injectRefreshFunctions(compilation, Template) { - const hookVars = compilation.mainTemplate.hooks.localVars; - hookVars.tap('ReactFreshWebpackPlugin', (source) => Template.asString([ - source, - '', - '// noop fns to prevent runtime errors during initialization', - 'if (typeof self !== "undefined") {', - Template.indent('self.$RefreshReg$ = function () {};'), - Template.indent('self.$RefreshSig$ = function () {'), - Template.indent(Template.indent('return function (type) {')), - Template.indent(Template.indent(Template.indent('return type;'))), - Template.indent(Template.indent('};')), - Template.indent('};'), - '}', - ])); -} -function webpack4(compiler) { - const { Template } = this; - // Webpack 4 does not have a method to handle interception of module - // execution. - // The closest thing we have to emulating this is mimicking the behavior of - // `strictModuleExceptionHandling` in `MainTemplate`: - // https://github.com/webpack/webpack/blob/4c644bf1f7cb067c748a52614500e0e2182b2700/lib/MainTemplate.js#L200 - compiler.hooks.compilation.tap('ReactFreshWebpackPlugin', (compilation) => { - injectRefreshFunctions(compilation, Template); - const hookRequire = compilation.mainTemplate.hooks.require; - // @ts-ignore webpack 5 types compat - hookRequire.tap('ReactFreshWebpackPlugin', (source) => { - // Webpack 4 evaluates module code on the following line: - // ``` - // modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId)); - // ``` - // https://github.com/webpack/webpack/blob/4c644bf1f7cb067c748a52614500e0e2182b2700/lib/MainTemplate.js#L200 - const lines = source.split('\n'); - // @ts-ignore webpack 5 types compat - const evalIndex = lines.findIndex((l) => l.includes('modules[moduleId].call(')); - // Unable to find the module execution, that's OK: - if (evalIndex === -1) { - return source; - } - // Legacy CSS implementations will `eval` browser code in a Node.js - // context to extract CSS. For backwards compatibility, we need to check - // we're in a browser context before continuing. - return Template.asString([ - ...lines.slice(0, evalIndex), - ` - var hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$; - var cleanup = hasRefresh - ? self.$RefreshInterceptModuleExecution$(moduleId) - : function() {}; - try { - `, - lines[evalIndex], - ` - } finally { - cleanup(); - } - `, - ...lines.slice(evalIndex + 1), - ]); - }); - }); -} -function webpack5(compiler) { - const { RuntimeGlobals, RuntimeModule, Template } = this; - class ReactRefreshRuntimeModule extends RuntimeModule { - constructor() { - super('react refresh', 5); - } - generate() { - const { runtimeTemplate } = this.compilation; - return Template.asString([ - `if (${RuntimeGlobals.interceptModuleExecution}) {`, - `${RuntimeGlobals.interceptModuleExecution}.push(${runtimeTemplate.basicFunction('options', [ - `${runtimeTemplate.supportsConst() ? 'const' : 'var'} originalFactory = options.factory;`, - `options.factory = ${runtimeTemplate.basicFunction('moduleObject, moduleExports, webpackRequire', [ - // Legacy CSS implementations will `eval` browser code in a Node.js - // context to extract CSS. For backwards compatibility, we need to check - // we're in a browser context before continuing. - `${runtimeTemplate.supportsConst() ? 'const' : 'var'} hasRefresh = typeof self !== "undefined" && !!self.$RefreshInterceptModuleExecution$;`, - `${runtimeTemplate.supportsConst() ? 'const' : 'var'} cleanup = hasRefresh ? self.$RefreshInterceptModuleExecution$(moduleObject.id) : ${runtimeTemplate.supportsArrowFunction() - ? '() => {}' - : 'function() {}'};`, - 'try {', - Template.indent('originalFactory.call(this, moduleObject, moduleExports, webpackRequire);'), - '} finally {', - Template.indent(`cleanup();`), - '}', - ])}`, - ])})`, - '}', - ]); - } - } - // @ts-ignore webpack 5 types compat - compiler.hooks.compilation.tap('ReactFreshWebpackPlugin', (compilation) => { - injectRefreshFunctions(compilation, Template); - // @ts-ignore Exists in webpack 5 - compilation.hooks.additionalTreeRuntimeRequirements.tap('ReactFreshWebpackPlugin', (chunk) => { - // @ts-ignore Exists in webpack 5 - compilation.addRuntimeModule(chunk, new ReactRefreshRuntimeModule()); - }); - }); -} -class ReactFreshWebpackPlugin { - constructor({ version, RuntimeGlobals, RuntimeModule, Template } = require('webpack')) { - this.webpackMajorVersion = parseInt(version !== null && version !== void 0 ? version : '', 10); - this.RuntimeGlobals = RuntimeGlobals; - this.RuntimeModule = RuntimeModule; - this.Template = Template; - } - apply(compiler) { - switch (this.webpackMajorVersion) { - case 4: { - webpack4.call(this, compiler); - break; - } - case 5: { - webpack5.call(this, compiler); - break; - } - default: { - throw new Error(`ReactFreshWebpackPlugin does not support webpack v${this.webpackMajorVersion}.`); - } - } - } -} -exports.default = ReactFreshWebpackPlugin; -//# sourceMappingURL=ReactRefreshWebpackPlugin.js.map \ No newline at end of file diff --git a/packages/next/compiled/@next/react-refresh-utils/internal/ReactRefreshModule.runtime.js b/packages/next/compiled/@next/react-refresh-utils/internal/ReactRefreshModule.runtime.js deleted file mode 100644 index b35fcd01fb283..0000000000000 --- a/packages/next/compiled/@next/react-refresh-utils/internal/ReactRefreshModule.runtime.js +++ /dev/null @@ -1,61 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -// This function gets unwrapped into global scope, which is why we don't invert -// if-blocks. Also, you cannot use `return`. -function default_1() { - var _a, _b; - // Legacy CSS implementations will `eval` browser code in a Node.js context - // to extract CSS. For backwards compatibility, we need to check we're in a - // browser context before continuing. - if (typeof self !== 'undefined' && - // AMP / No-JS mode does not inject these helpers: - '$RefreshHelpers$' in self) { - var currentExports = module.__proto__.exports; - var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null; - // This cannot happen in MainTemplate because the exports mismatch between - // templating and execution. - self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id); - // A module can be accepted automatically based on its exports, e.g. when - // it is a Refresh Boundary. - if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) { - // Save the previous exports on update so we can compare the boundary - // signatures. - module.hot.dispose(function (data) { - data.prevExports = currentExports; - }); - // Unconditionally accept an update to this module, we'll check if it's - // still a Refresh Boundary later. - module.hot.accept(); - // This field is set when the previous version of this module was a - // Refresh Boundary, letting us know we need to check for invalidation or - // enqueue an update. - if (prevExports !== null) { - // A boundary can become ineligible if its exports are incompatible - // with the previous exports. - // - // For example, if you add/remove/change exports, we'll want to - // re-execute the importing modules, and force those components to - // re-render. Similarly, if you convert a class component to a - // function, we want to invalidate the boundary. - if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) { - module.hot.invalidate(); - } - else { - self.$RefreshHelpers$.scheduleUpdate(); - } - } - } - else { - // Since we just executed the code for the module, it's possible that the - // new exports made it ineligible for being a boundary. - // We only care about the case when we were _previously_ a boundary, - // because we already accepted this update (accidental side effect). - var isNoLongerABoundary = prevExports !== null; - if (isNoLongerABoundary) { - module.hot.invalidate(); - } - } - } -} -exports.default = default_1; -//# sourceMappingURL=ReactRefreshModule.runtime.js.map \ No newline at end of file diff --git a/packages/next/compiled/@next/react-refresh-utils/internal/helpers.js b/packages/next/compiled/@next/react-refresh-utils/internal/helpers.js deleted file mode 100644 index 205157c6392d3..0000000000000 --- a/packages/next/compiled/@next/react-refresh-utils/internal/helpers.js +++ /dev/null @@ -1,144 +0,0 @@ -"use strict"; -/** - * MIT License - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// This file is copied from the Metro JavaScript bundler, with minor tweaks for -// webpack 4 compatibility. -// -// https://github.com/facebook/metro/blob/d6b9685c730d0d63577db40f41369157f28dfa3a/packages/metro/src/lib/polyfills/require.js -const runtime_1 = __importDefault(require("next/dist/compiled/react-refresh/runtime")); -function isSafeExport(key) { - return (key === '__esModule' || - key === '__N_SSG' || - key === '__N_SSP' || - key === '__N_RSC' || - // TODO: remove this key from page config instead of allow listing it - key === 'config'); -} -function registerExportsForReactRefresh(moduleExports, moduleID) { - runtime_1.default.register(moduleExports, moduleID + ' %exports%'); - if (moduleExports == null || typeof moduleExports !== 'object') { - // Exit if we can't iterate over exports. - // (This is important for legacy environments.) - return; - } - for (var key in moduleExports) { - if (isSafeExport(key)) { - continue; - } - var exportValue = moduleExports[key]; - var typeID = moduleID + ' %exports% ' + key; - runtime_1.default.register(exportValue, typeID); - } -} -function isReactRefreshBoundary(moduleExports) { - if (runtime_1.default.isLikelyComponentType(moduleExports)) { - return true; - } - if (moduleExports == null || typeof moduleExports !== 'object') { - // Exit if we can't iterate over exports. - return false; - } - var hasExports = false; - var areAllExportsComponents = true; - for (var key in moduleExports) { - hasExports = true; - if (isSafeExport(key)) { - continue; - } - var exportValue = moduleExports[key]; - if (!runtime_1.default.isLikelyComponentType(exportValue)) { - areAllExportsComponents = false; - } - } - return hasExports && areAllExportsComponents; -} -function shouldInvalidateReactRefreshBoundary(prevExports, nextExports) { - var prevSignature = getRefreshBoundarySignature(prevExports); - var nextSignature = getRefreshBoundarySignature(nextExports); - if (prevSignature.length !== nextSignature.length) { - return true; - } - for (var i = 0; i < nextSignature.length; i++) { - if (prevSignature[i] !== nextSignature[i]) { - return true; - } - } - return false; -} -function getRefreshBoundarySignature(moduleExports) { - var signature = []; - signature.push(runtime_1.default.getFamilyByType(moduleExports)); - if (moduleExports == null || typeof moduleExports !== 'object') { - // Exit if we can't iterate over exports. - // (This is important for legacy environments.) - return signature; - } - for (var key in moduleExports) { - if (isSafeExport(key)) { - continue; - } - var exportValue = moduleExports[key]; - signature.push(key); - signature.push(runtime_1.default.getFamilyByType(exportValue)); - } - return signature; -} -var isUpdateScheduled = false; -function scheduleUpdate() { - if (isUpdateScheduled) { - return; - } - function canApplyUpdate() { - return module.hot.status() === 'idle'; - } - isUpdateScheduled = true; - setTimeout(function () { - isUpdateScheduled = false; - // Only trigger refresh if the webpack HMR state is idle - if (canApplyUpdate()) { - try { - runtime_1.default.performReactRefresh(); - } - catch (err) { - console.warn('Warning: Failed to re-render. We will retry on the next Fast Refresh event.\n' + - err); - } - return; - } - return scheduleUpdate(); - }, 30); -} -// Needs to be compatible with IE11 -exports.default = { - registerExportsForReactRefresh: registerExportsForReactRefresh, - isReactRefreshBoundary: isReactRefreshBoundary, - shouldInvalidateReactRefreshBoundary: shouldInvalidateReactRefreshBoundary, - getRefreshBoundarySignature: getRefreshBoundarySignature, - scheduleUpdate: scheduleUpdate, -}; -//# sourceMappingURL=helpers.js.map \ No newline at end of file diff --git a/packages/next/compiled/@next/react-refresh-utils/loader.js b/packages/next/compiled/@next/react-refresh-utils/loader.js deleted file mode 100644 index 6c50b7146b5be..0000000000000 --- a/packages/next/compiled/@next/react-refresh-utils/loader.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const ReactRefreshModule_runtime_1 = __importDefault(require("./internal/ReactRefreshModule.runtime")); -let refreshModuleRuntime = ReactRefreshModule_runtime_1.default.toString(); -refreshModuleRuntime = refreshModuleRuntime.slice(refreshModuleRuntime.indexOf('{') + 1, refreshModuleRuntime.lastIndexOf('}')); -const ReactRefreshLoader = function ReactRefreshLoader(source, inputSourceMap) { - this.callback(null, `${source}\n\n;${refreshModuleRuntime}`, inputSourceMap); -}; -exports.default = ReactRefreshLoader; -//# sourceMappingURL=loader.js.map \ No newline at end of file diff --git a/packages/next/compiled/@next/react-refresh-utils/package.json b/packages/next/compiled/@next/react-refresh-utils/package.json deleted file mode 100644 index ec188fd8f3487..0000000000000 --- a/packages/next/compiled/@next/react-refresh-utils/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "@next/react-refresh-utils", - "version": "12.0.9-canary.0", - "description": "An experimental package providing utilities for React Refresh.", - "repository": { - "url": "vercel/next.js", - "directory": "packages/react-refresh-utils" - }, - "files": [ - "internal/*.d.ts", - "internal/*.js", - "*.d.ts", - "*.js" - ], - "author": "Joe Haddad ", - "license": "MIT", - "scripts": { - "prepublish": "tsc -d -p tsconfig.json", - "dev": "tsc -d -w -p tsconfig.json" - }, - "peerDependencies": { - "react-refresh": "0.8.3", - "webpack": "^4 || ^5" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } - }, - "devDependencies": { - "react-refresh": "0.8.3" - } -} diff --git a/packages/next/compiled/@next/react-refresh-utils/runtime.js b/packages/next/compiled/@next/react-refresh-utils/runtime.js deleted file mode 100644 index d19bbafd6d68a..0000000000000 --- a/packages/next/compiled/@next/react-refresh-utils/runtime.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const runtime_1 = __importDefault(require("next/dist/compiled/react-refresh/runtime")); -const helpers_1 = __importDefault(require("./internal/helpers")); -// Hook into ReactDOM initialization -runtime_1.default.injectIntoGlobalHook(self); -// Register global helpers -self.$RefreshHelpers$ = helpers_1.default; -// Register a helper for module execution interception -self.$RefreshInterceptModuleExecution$ = function (webpackModuleId) { - var prevRefreshReg = self.$RefreshReg$; - var prevRefreshSig = self.$RefreshSig$; - self.$RefreshReg$ = function (type, id) { - runtime_1.default.register(type, webpackModuleId + ' ' + id); - }; - self.$RefreshSig$ = runtime_1.default.createSignatureFunctionForTransform; - // Modeled after `useEffect` cleanup pattern: - // https://reactjs.org/docs/hooks-effect.html#effects-with-cleanup - return function () { - self.$RefreshReg$ = prevRefreshReg; - self.$RefreshSig$ = prevRefreshSig; - }; -}; -//# sourceMappingURL=runtime.js.map \ No newline at end of file diff --git a/packages/next/compiled/react-refresh/LICENSE b/packages/next/compiled/react-refresh/LICENSE deleted file mode 100644 index b96dcb0480a0b..0000000000000 --- a/packages/next/compiled/react-refresh/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/next/compiled/react-refresh/README.md b/packages/next/compiled/react-refresh/README.md deleted file mode 100644 index f6983ef52ae9e..0000000000000 --- a/packages/next/compiled/react-refresh/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# react-refresh - -This package implements the wiring necessary to integrate Fast Refresh into bundlers. Fast Refresh is a feature that lets you edit React components in a running application without losing their state. It is similar to an old feature known as "hot reloading", but Fast Refresh is more reliable and officially supported by React. - -This package is primarily aimed at developers of bundler plugins. If you’re working on one, here is a [rough guide](https://github.com/facebook/react/issues/16604#issuecomment-528663101) for Fast Refresh integration using this package. diff --git a/packages/next/compiled/react-refresh/babel.js b/packages/next/compiled/react-refresh/babel.js deleted file mode 100644 index d222a0d3fd1da..0000000000000 --- a/packages/next/compiled/react-refresh/babel.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/react-refresh-babel.production.min.js'); -} else { - module.exports = require('./cjs/react-refresh-babel.development.js'); -} diff --git a/packages/next/compiled/react-refresh/cjs/react-refresh-babel.development.js b/packages/next/compiled/react-refresh/cjs/react-refresh-babel.development.js deleted file mode 100644 index 36688a2fa1041..0000000000000 --- a/packages/next/compiled/react-refresh/cjs/react-refresh-babel.development.js +++ /dev/null @@ -1,763 +0,0 @@ -/** @license React vundefined - * react-refresh-babel.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - - - -if (process.env.NODE_ENV !== "production") { - (function() { -'use strict'; - -function ReactFreshBabelPlugin (babel) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - if (typeof babel.getEnv === 'function') { - // Only available in Babel 7. - var env = babel.getEnv(); - - if (env !== 'development' && !opts.skipEnvCheck) { - throw new Error('React Refresh Babel transform should only be enabled in development environment. ' + 'Instead, the environment is: "' + env + '". If you want to override this check, pass {skipEnvCheck: true} as plugin options.'); - } - } - - var t = babel.types; - var refreshReg = t.identifier(opts.refreshReg || '$RefreshReg$'); - var refreshSig = t.identifier(opts.refreshSig || '$RefreshSig$'); - var registrationsByProgramPath = new Map(); - - function createRegistration(programPath, persistentID) { - var handle = programPath.scope.generateUidIdentifier('c'); - - if (!registrationsByProgramPath.has(programPath)) { - registrationsByProgramPath.set(programPath, []); - } - - var registrations = registrationsByProgramPath.get(programPath); - registrations.push({ - handle: handle, - persistentID: persistentID - }); - return handle; - } - - function isComponentishName(name) { - return typeof name === 'string' && name[0] >= 'A' && name[0] <= 'Z'; - } - - function findInnerComponents(inferredName, path, callback) { - var node = path.node; - - switch (node.type) { - case 'Identifier': - { - if (!isComponentishName(node.name)) { - return false; - } // export default hoc(Foo) - // const X = hoc(Foo) - - - callback(inferredName, node, null); - return true; - } - - case 'FunctionDeclaration': - { - // function Foo() {} - // export function Foo() {} - // export default function Foo() {} - callback(inferredName, node.id, null); - return true; - } - - case 'ArrowFunctionExpression': - { - if (node.body.type === 'ArrowFunctionExpression') { - return false; - } // let Foo = () => {} - // export default hoc1(hoc2(() => {})) - - - callback(inferredName, node, path); - return true; - } - - case 'FunctionExpression': - { - // let Foo = function() {} - // const Foo = hoc1(forwardRef(function renderFoo() {})) - // export default memo(function() {}) - callback(inferredName, node, path); - return true; - } - - case 'CallExpression': - { - var argsPath = path.get('arguments'); - - if (argsPath === undefined || argsPath.length === 0) { - return false; - } - - var calleePath = path.get('callee'); - - switch (calleePath.node.type) { - case 'MemberExpression': - case 'Identifier': - { - var calleeSource = calleePath.getSource(); - var firstArgPath = argsPath[0]; - var innerName = inferredName + '$' + calleeSource; - var foundInside = findInnerComponents(innerName, firstArgPath, callback); - - if (!foundInside) { - return false; - } // const Foo = hoc1(hoc2(() => {})) - // export default memo(React.forwardRef(function() {})) - - - callback(inferredName, node, path); - return true; - } - - default: - { - return false; - } - } - } - - case 'VariableDeclarator': - { - var init = node.init; - - if (init === null) { - return false; - } - - var name = node.id.name; - - if (!isComponentishName(name)) { - return false; - } - - switch (init.type) { - case 'ArrowFunctionExpression': - case 'FunctionExpression': - // Likely component definitions. - break; - - case 'CallExpression': - { - // Maybe a HOC. - // Try to determine if this is some form of import. - var callee = init.callee; - var calleeType = callee.type; - - if (calleeType === 'Import') { - return false; - } else if (calleeType === 'Identifier') { - if (callee.name.indexOf('require') === 0) { - return false; - } else if (callee.name.indexOf('import') === 0) { - return false; - } // Neither require nor import. Might be a HOC. - // Pass through. - - } else if (calleeType === 'MemberExpression') ; else { - // More complicated call. - return false; - } - - break; - } - - case 'TaggedTemplateExpression': - // Maybe something like styled.div`...` - break; - - default: - return false; - } - - var initPath = path.get('init'); - - var _foundInside = findInnerComponents(inferredName, initPath, callback); - - if (_foundInside) { - return true; - } // See if this identifier is used in JSX. Then it's a component. - - - var binding = path.scope.getBinding(name); - - if (binding === undefined) { - return; - } - - var isLikelyUsedAsType = false; - var referencePaths = binding.referencePaths; - - for (var i = 0; i < referencePaths.length; i++) { - var ref = referencePaths[i]; - - if (ref.node && ref.node.type !== 'JSXIdentifier' && ref.node.type !== 'Identifier') { - continue; - } - - var refParent = ref.parent; - - if (refParent.type === 'JSXOpeningElement') { - isLikelyUsedAsType = true; - } else if (refParent.type === 'CallExpression') { - var _callee = refParent.callee; - var fnName = void 0; - - switch (_callee.type) { - case 'Identifier': - fnName = _callee.name; - break; - - case 'MemberExpression': - fnName = _callee.property.name; - break; - } - - switch (fnName) { - case 'createElement': - case 'jsx': - case 'jsxDEV': - case 'jsxs': - isLikelyUsedAsType = true; - break; - } - } - - if (isLikelyUsedAsType) { - // const X = ... + later - callback(inferredName, init, initPath); - return true; - } - } - } - } - - return false; - } - - function isBuiltinHook(hookName) { - switch (hookName) { - case 'useState': - case 'React.useState': - case 'useReducer': - case 'React.useReducer': - case 'useEffect': - case 'React.useEffect': - case 'useLayoutEffect': - case 'React.useLayoutEffect': - case 'useMemo': - case 'React.useMemo': - case 'useCallback': - case 'React.useCallback': - case 'useRef': - case 'React.useRef': - case 'useContext': - case 'React.useContext': - case 'useImperativeMethods': - case 'React.useImperativeMethods': - case 'useDebugValue': - case 'React.useDebugValue': - return true; - - default: - return false; - } - } - - function getHookCallsSignature(functionNode) { - var fnHookCalls = hookCalls.get(functionNode); - - if (fnHookCalls === undefined) { - return null; - } - - return { - key: fnHookCalls.map(function (call) { - return call.name + '{' + call.key + '}'; - }).join('\n'), - customHooks: fnHookCalls.filter(function (call) { - return !isBuiltinHook(call.name); - }).map(function (call) { - return t.cloneDeep(call.callee); - }) - }; - } - - var hasForceResetCommentByFile = new WeakMap(); // We let user do /* @refresh reset */ to reset state in the whole file. - - function hasForceResetComment(path) { - var file = path.hub.file; - var hasForceReset = hasForceResetCommentByFile.get(file); - - if (hasForceReset !== undefined) { - return hasForceReset; - } - - hasForceReset = false; - var comments = file.ast.comments; - - for (var i = 0; i < comments.length; i++) { - var cmt = comments[i]; - - if (cmt.value.indexOf('@refresh reset') !== -1) { - hasForceReset = true; - break; - } - } - - hasForceResetCommentByFile.set(file, hasForceReset); - return hasForceReset; - } - - function createArgumentsForSignature(node, signature, scope) { - var key = signature.key, - customHooks = signature.customHooks; - var forceReset = hasForceResetComment(scope.path); - var customHooksInScope = []; - customHooks.forEach(function (callee) { - // Check if a corresponding binding exists where we emit the signature. - var bindingName; - - switch (callee.type) { - case 'MemberExpression': - if (callee.object.type === 'Identifier') { - bindingName = callee.object.name; - } - - break; - - case 'Identifier': - bindingName = callee.name; - break; - } - - if (scope.hasBinding(bindingName)) { - customHooksInScope.push(callee); - } else { - // We don't have anything to put in the array because Hook is out of scope. - // Since it could potentially have been edited, remount the component. - forceReset = true; - } - }); - var finalKey = key; - - if (typeof require === 'function' && !opts.emitFullSignatures) { - // Prefer to hash when we can (e.g. outside of ASTExplorer). - // This makes it deterministically compact, even if there's - // e.g. a useState ininitalizer with some code inside. - // We also need it for www that has transforms like cx() - // that don't understand if something is part of a string. - finalKey = require('crypto').createHash('sha1').update(key).digest('base64'); - } - - var args = [node, t.stringLiteral(finalKey)]; - - if (forceReset || customHooksInScope.length > 0) { - args.push(t.booleanLiteral(forceReset)); - } - - if (customHooksInScope.length > 0) { - args.push( // TODO: We could use an arrow here to be more compact. - // However, don't do it until AMA can run them natively. - t.functionExpression(null, [], t.blockStatement([t.returnStatement(t.arrayExpression(customHooksInScope))]))); - } - - return args; - } - - var seenForRegistration = new WeakSet(); - var seenForSignature = new WeakSet(); - var seenForOutro = new WeakSet(); - var hookCalls = new WeakMap(); - var HookCallsVisitor = { - CallExpression: function (path) { - var node = path.node; - var callee = node.callee; // Note: this visitor MUST NOT mutate the tree in any way. - // It runs early in a separate traversal and should be very fast. - - var name = null; - - switch (callee.type) { - case 'Identifier': - name = callee.name; - break; - - case 'MemberExpression': - name = callee.property.name; - break; - } - - if (name === null || !/^use[A-Z]/.test(name)) { - return; - } - - var fnScope = path.scope.getFunctionParent(); - - if (fnScope === null) { - return; - } // This is a Hook call. Record it. - - - var fnNode = fnScope.block; - - if (!hookCalls.has(fnNode)) { - hookCalls.set(fnNode, []); - } - - var hookCallsForFn = hookCalls.get(fnNode); - var key = ''; - - if (path.parent.type === 'VariableDeclarator') { - // TODO: if there is no LHS, consider some other heuristic. - key = path.parentPath.get('id').getSource(); - } // Some built-in Hooks reset on edits to arguments. - - - var args = path.get('arguments'); - - if (name === 'useState' && args.length > 0) { - // useState second argument is initial state. - key += '(' + args[0].getSource() + ')'; - } else if (name === 'useReducer' && args.length > 1) { - // useReducer second argument is initial state. - key += '(' + args[1].getSource() + ')'; - } - - hookCallsForFn.push({ - callee: path.node.callee, - name: name, - key: key - }); - } - }; - return { - visitor: { - ExportDefaultDeclaration: function (path) { - var node = path.node; - var decl = node.declaration; - var declPath = path.get('declaration'); - - if (decl.type !== 'CallExpression') { - // For now, we only support possible HOC calls here. - // Named function declarations are handled in FunctionDeclaration. - // Anonymous direct exports like export default function() {} - // are currently ignored. - return; - } // Make sure we're not mutating the same tree twice. - // This can happen if another Babel plugin replaces parents. - - - if (seenForRegistration.has(node)) { - return; - } - - seenForRegistration.add(node); // Don't mutate the tree above this point. - // This code path handles nested cases like: - // export default memo(() => {}) - // In those cases it is more plausible people will omit names - // so they're worth handling despite possible false positives. - // More importantly, it handles the named case: - // export default memo(function Named() {}) - - var inferredName = '%default%'; - var programPath = path.parentPath; - findInnerComponents(inferredName, declPath, function (persistentID, targetExpr, targetPath) { - if (targetPath === null) { - // For case like: - // export default hoc(Foo) - // we don't want to wrap Foo inside the call. - // Instead we assume it's registered at definition. - return; - } - - var handle = createRegistration(programPath, persistentID); - targetPath.replaceWith(t.assignmentExpression('=', handle, targetExpr)); - }); - }, - FunctionDeclaration: { - enter: function (path) { - var node = path.node; - var programPath; - var insertAfterPath; - - switch (path.parent.type) { - case 'Program': - insertAfterPath = path; - programPath = path.parentPath; - break; - - case 'ExportNamedDeclaration': - insertAfterPath = path.parentPath; - programPath = insertAfterPath.parentPath; - break; - - case 'ExportDefaultDeclaration': - insertAfterPath = path.parentPath; - programPath = insertAfterPath.parentPath; - break; - - default: - return; - } - - var id = node.id; - - if (id === null) { - // We don't currently handle anonymous default exports. - return; - } - - var inferredName = id.name; - - if (!isComponentishName(inferredName)) { - return; - } // Make sure we're not mutating the same tree twice. - // This can happen if another Babel plugin replaces parents. - - - if (seenForRegistration.has(node)) { - return; - } - - seenForRegistration.add(node); // Don't mutate the tree above this point. - // export function Named() {} - // function Named() {} - - findInnerComponents(inferredName, path, function (persistentID, targetExpr) { - var handle = createRegistration(programPath, persistentID); - insertAfterPath.insertAfter(t.expressionStatement(t.assignmentExpression('=', handle, targetExpr))); - }); - }, - exit: function (path) { - var node = path.node; - var id = node.id; - - if (id === null) { - return; - } - - var signature = getHookCallsSignature(node); - - if (signature === null) { - return; - } // Make sure we're not mutating the same tree twice. - // This can happen if another Babel plugin replaces parents. - - - if (seenForSignature.has(node)) { - return; - } - - seenForSignature.add(node); // Don't mutate the tree above this point. - - var sigCallID = path.scope.generateUidIdentifier('_s'); - path.scope.parent.push({ - id: sigCallID, - init: t.callExpression(refreshSig, []) - }); // The signature call is split in two parts. One part is called inside the function. - // This is used to signal when first render happens. - - path.get('body').unshiftContainer('body', t.expressionStatement(t.callExpression(sigCallID, []))); // The second call is around the function itself. - // This is used to associate a type with a signature. - // Unlike with $RefreshReg$, this needs to work for nested - // declarations too. So we need to search for a path where - // we can insert a statement rather than hardcoding it. - - var insertAfterPath = null; - path.find(function (p) { - if (p.parentPath.isBlock()) { - insertAfterPath = p; - return true; - } - }); - - if (insertAfterPath === null) { - return; - } - - insertAfterPath.insertAfter(t.expressionStatement(t.callExpression(sigCallID, createArgumentsForSignature(id, signature, insertAfterPath.scope)))); - } - }, - 'ArrowFunctionExpression|FunctionExpression': { - exit: function (path) { - var node = path.node; - var signature = getHookCallsSignature(node); - - if (signature === null) { - return; - } // Make sure we're not mutating the same tree twice. - // This can happen if another Babel plugin replaces parents. - - - if (seenForSignature.has(node)) { - return; - } - - seenForSignature.add(node); // Don't mutate the tree above this point. - - var sigCallID = path.scope.generateUidIdentifier('_s'); - path.scope.parent.push({ - id: sigCallID, - init: t.callExpression(refreshSig, []) - }); // The signature call is split in two parts. One part is called inside the function. - // This is used to signal when first render happens. - - if (path.node.body.type !== 'BlockStatement') { - path.node.body = t.blockStatement([t.returnStatement(path.node.body)]); - } - - path.get('body').unshiftContainer('body', t.expressionStatement(t.callExpression(sigCallID, []))); // The second call is around the function itself. - // This is used to associate a type with a signature. - - if (path.parent.type === 'VariableDeclarator') { - var insertAfterPath = null; - path.find(function (p) { - if (p.parentPath.isBlock()) { - insertAfterPath = p; - return true; - } - }); - - if (insertAfterPath === null) { - return; - } // Special case when a function would get an inferred name: - // let Foo = () => {} - // let Foo = function() {} - // We'll add signature it on next line so that - // we don't mess up the inferred 'Foo' function name. - - - insertAfterPath.insertAfter(t.expressionStatement(t.callExpression(sigCallID, createArgumentsForSignature(path.parent.id, signature, insertAfterPath.scope)))); // Result: let Foo = () => {}; __signature(Foo, ...); - } else { - // let Foo = hoc(() => {}) - path.replaceWith(t.callExpression(sigCallID, createArgumentsForSignature(node, signature, path.scope))); // Result: let Foo = hoc(__signature(() => {}, ...)) - } - } - }, - VariableDeclaration: function (path) { - var node = path.node; - var programPath; - var insertAfterPath; - - switch (path.parent.type) { - case 'Program': - insertAfterPath = path; - programPath = path.parentPath; - break; - - case 'ExportNamedDeclaration': - insertAfterPath = path.parentPath; - programPath = insertAfterPath.parentPath; - break; - - case 'ExportDefaultDeclaration': - insertAfterPath = path.parentPath; - programPath = insertAfterPath.parentPath; - break; - - default: - return; - } // Make sure we're not mutating the same tree twice. - // This can happen if another Babel plugin replaces parents. - - - if (seenForRegistration.has(node)) { - return; - } - - seenForRegistration.add(node); // Don't mutate the tree above this point. - - var declPaths = path.get('declarations'); - - if (declPaths.length !== 1) { - return; - } - - var declPath = declPaths[0]; - var inferredName = declPath.node.id.name; - findInnerComponents(inferredName, declPath, function (persistentID, targetExpr, targetPath) { - if (targetPath === null) { - // For case like: - // export const Something = hoc(Foo) - // we don't want to wrap Foo inside the call. - // Instead we assume it's registered at definition. - return; - } - - var handle = createRegistration(programPath, persistentID); - - if (targetPath.parent.type === 'VariableDeclarator') { - // Special case when a variable would get an inferred name: - // let Foo = () => {} - // let Foo = function() {} - // let Foo = styled.div``; - // We'll register it on next line so that - // we don't mess up the inferred 'Foo' function name. - // (eg: with @babel/plugin-transform-react-display-name or - // babel-plugin-styled-components) - insertAfterPath.insertAfter(t.expressionStatement(t.assignmentExpression('=', handle, declPath.node.id))); // Result: let Foo = () => {}; _c1 = Foo; - } else { - // let Foo = hoc(() => {}) - targetPath.replaceWith(t.assignmentExpression('=', handle, targetExpr)); // Result: let Foo = hoc(_c1 = () => {}) - } - }); - }, - Program: { - enter: function (path) { - // This is a separate early visitor because we need to collect Hook calls - // and "const [foo, setFoo] = ..." signatures before the destructuring - // transform mangles them. This extra traversal is not ideal for perf, - // but it's the best we can do until we stop transpiling destructuring. - path.traverse(HookCallsVisitor); - }, - exit: function (path) { - var registrations = registrationsByProgramPath.get(path); - - if (registrations === undefined) { - return; - } // Make sure we're not mutating the same tree twice. - // This can happen if another Babel plugin replaces parents. - - - var node = path.node; - - if (seenForOutro.has(node)) { - return; - } - - seenForOutro.add(node); // Don't mutate the tree above this point. - - registrationsByProgramPath.delete(path); - var declarators = []; - path.pushContainer('body', t.variableDeclaration('var', declarators)); - registrations.forEach(function (_ref) { - var handle = _ref.handle, - persistentID = _ref.persistentID; - path.pushContainer('body', t.expressionStatement(t.callExpression(refreshReg, [handle, t.stringLiteral(persistentID)]))); - declarators.push(t.variableDeclarator(handle)); - }); - } - } - } - }; -} - -module.exports = ReactFreshBabelPlugin; - })(); -} diff --git a/packages/next/compiled/react-refresh/cjs/react-refresh-babel.production.min.js b/packages/next/compiled/react-refresh/cjs/react-refresh-babel.production.min.js deleted file mode 100644 index c192f0aabd7ff..0000000000000 --- a/packages/next/compiled/react-refresh/cjs/react-refresh-babel.production.min.js +++ /dev/null @@ -1,22 +0,0 @@ -/** @license React vundefined - * react-refresh-babel.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict';module.exports=function(r){function t(a,b){var d=a.scope.generateUidIdentifier("c");l.has(a)||l.set(a,[]);l.get(a).push({handle:d,persistentID:b});return d}function u(a){return"string"===typeof a&&"A"<=a[0]&&"Z">=a[0]}function m(a,b,d){var c=b.node;switch(c.type){case "Identifier":if(!u(c.name))break;d(a,c,null);return!0;case "FunctionDeclaration":return d(a,c.id,null),!0;case "ArrowFunctionExpression":if("ArrowFunctionExpression"===c.body.type)break;d(a,c,b);return!0;case "FunctionExpression":return d(a, -c,b),!0;case "CallExpression":var f=b.get("arguments");if(void 0===f||0===f.length)break;var g=b.get("callee");switch(g.node.type){case "MemberExpression":case "Identifier":g=g.getSource();if(!m(a+"$"+g,f[0],d))return!1;d(a,c,b);return!0;default:return!1}case "VariableDeclarator":if(f=c.init,null!==f&&(g=c.id.name,u(g))){switch(f.type){case "ArrowFunctionExpression":case "FunctionExpression":break;case "CallExpression":c=f.callee;var e=c.type;if("Import"===e)return!1;if("Identifier"===e){if(0===c.name.indexOf("require")|| -0===c.name.indexOf("import"))return!1}else if("MemberExpression"!==e)return!1;break;case "TaggedTemplateExpression":break;default:return!1}c=b.get("init");if(m(a,c,d))return!0;g=b.scope.getBinding(g);if(void 0===g)return;b=!1;g=g.referencePaths;for(e=0;e 2 && arguments[2] !== undefined ? arguments[2] : false; - var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined; - - { - allSignaturesByType.set(type, { - forceReset: forceReset, - ownKey: key, - fullKey: null, - getCustomHooks: getCustomHooks || function () { - return []; - } - }); - } -} // This is lazily called during first render for a type. -// It captures Hook list at that time so inline requires don't break comparisons. - -function collectCustomHooksForSignature(type) { - { - var signature = allSignaturesByType.get(type); - - if (signature !== undefined) { - computeFullKey(signature); - } - } -} -function getFamilyByID(id) { - { - return allFamiliesByID.get(id); - } -} -function getFamilyByType(type) { - { - return allFamiliesByType.get(type); - } -} -function findAffectedHostInstances(families) { - { - var affectedInstances = new Set(); - mountedRoots.forEach(function (root) { - var helpers = helpersByRoot.get(root); - - if (helpers === undefined) { - throw new Error('Could not find helpers for a root. This is a bug in React Refresh.'); - } - - var instancesForRoot = helpers.findHostInstancesForRefresh(root, families); - instancesForRoot.forEach(function (inst) { - affectedInstances.add(inst); - }); - }); - return affectedInstances; - } -} -function injectIntoGlobalHook(globalObject) { - { - // For React Native, the global hook will be set up by require('react-devtools-core'). - // That code will run before us. So we need to monkeypatch functions on existing hook. - // For React Web, the global hook will be set up by the extension. - // This will also run before us. - var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__; - - if (hook === undefined) { - // However, if there is no DevTools extension, we'll need to set up the global hook ourselves. - // Note that in this case it's important that renderer code runs *after* this method call. - // Otherwise, the renderer will think that there is no global hook, and won't do the injection. - var nextID = 0; - globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = { - renderers: new Map(), - supportsFiber: true, - inject: function (injected) { - return nextID++; - }, - onScheduleFiberRoot: function (id, root, children) {}, - onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {}, - onCommitFiberUnmount: function () {} - }; - } // Here, we just want to get a reference to scheduleRefresh. - - - var oldInject = hook.inject; - - hook.inject = function (injected) { - var id = oldInject.apply(this, arguments); - - if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') { - // This version supports React Refresh. - helpersByRendererID.set(id, injected); - } - - return id; - }; // Do the same for any already injected roots. - // This is useful if ReactDOM has already been initialized. - // https://github.com/facebook/react/issues/17626 - - - hook.renderers.forEach(function (injected, id) { - if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') { - // This version supports React Refresh. - helpersByRendererID.set(id, injected); - } - }); // We also want to track currently mounted roots. - - var oldOnCommitFiberRoot = hook.onCommitFiberRoot; - - var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {}; - - hook.onScheduleFiberRoot = function (id, root, children) { - if (!isPerformingRefresh) { - // If it was intentionally scheduled, don't attempt to restore. - // This includes intentionally scheduled unmounts. - failedRoots.delete(root); - - if (rootElements !== null) { - rootElements.set(root, children); - } - } - - return oldOnScheduleFiberRoot.apply(this, arguments); - }; - - hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) { - var helpers = helpersByRendererID.get(id); - - if (helpers === undefined) { - return; - } - - helpersByRoot.set(root, helpers); - var current = root.current; - var alternate = current.alternate; // We need to determine whether this root has just (un)mounted. - // This logic is copy-pasted from similar logic in the DevTools backend. - // If this breaks with some refactoring, you'll want to update DevTools too. - - if (alternate !== null) { - var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null; - var isMounted = current.memoizedState != null && current.memoizedState.element != null; - - if (!wasMounted && isMounted) { - // Mount a new root. - mountedRoots.add(root); - failedRoots.delete(root); - } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) { - // Unmount an existing root. - mountedRoots.delete(root); - - if (didError) { - // We'll remount it on future edits. - failedRoots.add(root); - } else { - helpersByRoot.delete(root); - } - } else if (!wasMounted && !isMounted) { - if (didError) { - // We'll remount it on future edits. - failedRoots.add(root); - } - } - } else { - // Mount a new root. - mountedRoots.add(root); - } - - return oldOnCommitFiberRoot.apply(this, arguments); - }; - } -} -function hasUnrecoverableErrors() { - // TODO: delete this after removing dependency in RN. - return false; -} // Exposed for testing. - -function _getMountedRootCount() { - { - return mountedRoots.size; - } -} // This is a wrapper over more primitive functions for setting signature. -// Signatures let us decide whether the Hook order has changed on refresh. -// -// This function is intended to be used as a transform target, e.g.: -// var _s = createSignatureFunctionForTransform() -// -// function Hello() { -// const [foo, setFoo] = useState(0); -// const value = useCustomHook(); -// _s(); /* Second call triggers collecting the custom Hook list. -// * This doesn't happen during the module evaluation because we -// * don't want to change the module order with inline requires. -// * Next calls are noops. */ -// return

Hi

; -// } -// -// /* First call specifies the signature: */ -// _s( -// Hello, -// 'useState{[foo, setFoo]}(0)', -// () => [useCustomHook], /* Lazy to avoid triggering inline requires */ -// ); - -function createSignatureFunctionForTransform() { - { - // We'll fill in the signature in two steps. - // First, we'll know the signature itself. This happens outside the component. - // Then, we'll know the references to custom Hooks. This happens inside the component. - // After that, the returned function will be a fast path no-op. - var status = 'needsSignature'; - var savedType; - var hasCustomHooks; - return function (type, key, forceReset, getCustomHooks) { - switch (status) { - case 'needsSignature': - if (type !== undefined) { - // If we received an argument, this is the initial registration call. - savedType = type; - hasCustomHooks = typeof getCustomHooks === 'function'; - setSignature(type, key, forceReset, getCustomHooks); // The next call we expect is from inside a function, to fill in the custom Hooks. - - status = 'needsCustomHooks'; - } - - break; - - case 'needsCustomHooks': - if (hasCustomHooks) { - collectCustomHooksForSignature(savedType); - } - - status = 'resolved'; - break; - } - - return type; - }; - } -} -function isLikelyComponentType(type) { - { - switch (typeof type) { - case 'function': - { - // First, deal with classes. - if (type.prototype != null) { - if (type.prototype.isReactComponent) { - // React class. - return true; - } - - var ownNames = Object.getOwnPropertyNames(type.prototype); - - if (ownNames.length > 1 || ownNames[0] !== 'constructor') { - // This looks like a class. - return false; - } // eslint-disable-next-line no-proto - - - if (type.prototype.__proto__ !== Object.prototype) { - // It has a superclass. - return false; - } // Pass through. - // This looks like a regular function with empty prototype. - - } // For plain functions and arrows, use name as a heuristic. - - - var name = type.name || type.displayName; - return typeof name === 'string' && /^[A-Z]/.test(name); - } - - case 'object': - { - if (type != null) { - switch (type.$$typeof) { - case REACT_FORWARD_REF_TYPE: - case REACT_MEMO_TYPE: - // Definitely React components. - return true; - - default: - return false; - } - } - - return false; - } - - default: - { - return false; - } - } - } -} - -exports._getMountedRootCount = _getMountedRootCount; -exports.collectCustomHooksForSignature = collectCustomHooksForSignature; -exports.createSignatureFunctionForTransform = createSignatureFunctionForTransform; -exports.findAffectedHostInstances = findAffectedHostInstances; -exports.getFamilyByID = getFamilyByID; -exports.getFamilyByType = getFamilyByType; -exports.hasUnrecoverableErrors = hasUnrecoverableErrors; -exports.injectIntoGlobalHook = injectIntoGlobalHook; -exports.isLikelyComponentType = isLikelyComponentType; -exports.performReactRefresh = performReactRefresh; -exports.register = register; -exports.setSignature = setSignature; - })(); -} diff --git a/packages/next/compiled/react-refresh/cjs/react-refresh-runtime.production.min.js b/packages/next/compiled/react-refresh/cjs/react-refresh-runtime.production.min.js deleted file mode 100644 index d56221b5b0433..0000000000000 --- a/packages/next/compiled/react-refresh/cjs/react-refresh-runtime.production.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/** @license React vundefined - * react-refresh-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict';throw Error("React Refresh runtime should not be included in the production bundle."); diff --git a/packages/next/compiled/react-refresh/package.json b/packages/next/compiled/react-refresh/package.json deleted file mode 100644 index 19f6e8d5e79b1..0000000000000 --- a/packages/next/compiled/react-refresh/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "react-refresh", - "description": "React is a JavaScript library for building user interfaces.", - "keywords": [ - "react" - ], - "version": "0.8.3", - "homepage": "https://reactjs.org/", - "bugs": "https://github.com/facebook/react/issues", - "license": "MIT", - "files": [ - "LICENSE", - "README.md", - "babel.js", - "runtime.js", - "build-info.json", - "cjs/", - "umd/" - ], - "main": "index.js", - "repository": { - "type": "git", - "url": "https://github.com/facebook/react.git", - "directory": "packages/react" - }, - "engines": { - "node": ">=0.10.0" - } -} diff --git a/packages/next/compiled/react-refresh/runtime.js b/packages/next/compiled/react-refresh/runtime.js deleted file mode 100644 index 28e3b0ceeca91..0000000000000 --- a/packages/next/compiled/react-refresh/runtime.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/react-refresh-runtime.production.min.js'); -} else { - module.exports = require('./cjs/react-refresh-runtime.development.js'); -} diff --git a/packages/next/taskfile.js b/packages/next/taskfile.js index ff33f71633f0b..63bf54ddc974e 100644 --- a/packages/next/taskfile.js +++ b/packages/next/taskfile.js @@ -269,13 +269,13 @@ export async function ncc_react_refresh_utils(task, opts) { await fs.remove(join(__dirname, 'compiled/react-refresh')) await fs.copy( dirname(require.resolve('react-refresh/package.json')), - join(__dirname, 'compiled/react-refresh') + join(__dirname, 'dist/compiled/react-refresh') ) const srcDir = dirname( require.resolve('@next/react-refresh-utils/package.json') ) - const destDir = join(__dirname, 'compiled/@next/react-refresh-utils') + const destDir = join(__dirname, 'dist/compiled/@next/react-refresh-utils') await fs.remove(destDir) await fs.ensureDir(destDir) @@ -1687,7 +1687,6 @@ export async function ncc(task, opts) { await task.serial( [ 'ncc_next__react_dev_overlay', - 'ncc_react_refresh_utils', 'copy_regenerator_runtime', 'copy_babel_runtime', 'copy_constants_browserify', @@ -1720,6 +1719,7 @@ export async function compile(task, opts) { ], opts ) + await task.serial(['ncc_react_refresh_utils']) } export async function bin(task, opts) { diff --git a/test/e2e/basepath.test.ts b/test/e2e/basepath.test.ts index 3739a7d71e9f2..fdd586abe3ece 100644 --- a/test/e2e/basepath.test.ts +++ b/test/e2e/basepath.test.ts @@ -38,7 +38,7 @@ describe('basePath', () => { }, { source: '/rewrite-no-basepath', - destination: 'https://test-404-jj4.vercel.app/', + destination: 'https://example.com', basePath: false, }, { @@ -262,7 +262,7 @@ describe('basePath', () => { it('should rewrite without basePath when set to false', async () => { const html = await renderViaHTTP(next.url, '/rewrite-no-basePath') - expect(html).toContain('Get started by editing') + expect(html).toContain('Example Domain') }) it('should redirect with basePath by default', async () => { @@ -548,7 +548,7 @@ describe('basePath', () => { ) const text = await browser.elementByCss('body').text() - expect(text).toContain('Get started by editing') + expect(text).toContain('Example Domain') }) }