-
Notifications
You must be signed in to change notification settings - Fork 26.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: add named export with existing default export #38503
Conversation
Having two ways to import a module is not something we'd want to add imo as it would increase the api surface. |
@timneutkens Yes, I agree. It is also a bit hard to teach developers about this (E.g., which one to prefer? which one to use under what circumstances?) But due to the very nature of default export, this is the only way to use I have thought of completely deprecating default exports and switching to named exports, but it will break all existing Next.js projects, which is what we should prevent. Of course, there is another way to fix it: just simply close #37524 directly and mark it as |
Does it mean const nextJest = require("next/jest");
assert(nextJest.nextJest === nextJest) |
Before the PR: const nextJest = require("next/jest");
nextJest.default === nextJest; // true
nextJest.nextJest === nextJest // false After the PR: const nextJest = require("next/jest");
nextJest.default === nextJest; // true
nextJest.nextJest === nextJest // also true |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | SukkaW/next.js named-export | Change | |
---|---|---|---|
buildDuration | 22.4s | 21s | -1.4s |
buildDurationCached | 7.5s | 6.9s | -587ms |
nodeModulesSize | 2.2 GB | 2.2 GB |
Page Load Tests Overall increase ✓
vercel/next.js canary | SukkaW/next.js named-export | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 4.78 | 4.933 | |
/ avg req/sec | 523.03 | 506.83 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 2.309 | 2.255 | -0.05 |
/error-in-render avg req/sec | 1082.63 | 1108.64 | +26.01 |
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary | SukkaW/next.js named-export | Change | |
---|---|---|---|
299.HASH.js gzip | 179 B | 180 B | |
framework-HASH.js gzip | 42 kB | 42 kB | ✓ |
main-HASH.js gzip | 30.7 kB | 30.7 kB | |
webpack-HASH.js gzip | 1.54 kB | 1.54 kB | |
Overall change | 74.5 kB | 74.5 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | SukkaW/next.js named-export | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages Overall increase ⚠️
vercel/next.js canary | SukkaW/next.js named-export | Change | |
---|---|---|---|
_app-HASH.js gzip | 825 B | 824 B | -1 B |
_error-HASH.js gzip | 194 B | 194 B | ✓ |
amp-HASH.js gzip | 495 B | 498 B | |
css-HASH.js gzip | 328 B | 328 B | ✓ |
dynamic-HASH.js gzip | 2.47 kB | 2.48 kB | |
head-HASH.js gzip | 356 B | 353 B | -3 B |
hooks-HASH.js gzip | 805 B | 804 B | -1 B |
image-HASH.js gzip | 5.21 kB | 5.21 kB | -4 B |
index-HASH.js gzip | 263 B | 263 B | ✓ |
link-HASH.js gzip | 2.37 kB | 2.39 kB | |
routerDirect..HASH.js gzip | 321 B | 320 B | -1 B |
script-HASH.js gzip | 391 B | 392 B | |
withRouter-HASH.js gzip | 318 B | 319 B | |
85e02e95b279..7e3.css gzip | 107 B | 107 B | ✓ |
Overall change | 14.5 kB | 14.5 kB |
Client Build Manifests Overall increase ⚠️
vercel/next.js canary | SukkaW/next.js named-export | Change | |
---|---|---|---|
_buildManifest.js gzip | 458 B | 459 B | |
Overall change | 458 B | 459 B |
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary | SukkaW/next.js named-export | Change | |
---|---|---|---|
index.html gzip | 521 B | 523 B | |
link.html gzip | 537 B | 537 B | ✓ |
withRouter.html gzip | 517 B | 517 B | ✓ |
Overall change | 1.57 kB | 1.58 kB |
Middleware size
vercel/next.js canary | SukkaW/next.js named-export | Change | |
---|---|---|---|
middleware.js gzip | 16.9 kB | 16.9 kB | ✓ |
edge-runtime..pack.js gzip | 1.83 kB | 1.83 kB | ✓ |
Overall change | 18.8 kB | 18.8 kB | ✓ |
Diffs
Diff for middleware.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[826],
{
- /***/ 776: /***/ (
+ /***/ 457: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -14,7 +14,7 @@
/* harmony export */
});
/* harmony import */ var next_dist_server_web_adapter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
- 222
+ 35
);
// The condition is true when the "process" module is provided
@@ -24,7 +24,7 @@
__webpack_require__.g.process = process;
}
- var mod = __webpack_require__(724);
+ var mod = __webpack_require__(623);
var handler = mod.middleware || mod.default;
if (typeof handler !== "function") {
@@ -50,7 +50,7 @@
/***/
},
- /***/ 724: /***/ (
+ /***/ 623: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -62,7 +62,7 @@
/* harmony export */
});
/* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
- 335
+ 897
);
/* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
next_server__WEBPACK_IMPORTED_MODULE_0__
@@ -75,7 +75,7 @@
/***/
},
- /***/ 734: /***/ (__unused_webpack_module, exports) => {
+ /***/ 242: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -95,7 +95,7 @@
/***/
},
- /***/ 893: /***/ (__unused_webpack_module, exports) => {
+ /***/ 936: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -133,7 +133,7 @@
/***/
},
- /***/ 142: /***/ (__unused_webpack_module, exports) => {
+ /***/ 846: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -165,7 +165,7 @@
/***/
},
- /***/ 777: /***/ (
+ /***/ 893: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -176,8 +176,8 @@
value: true
});
exports.addLocale = addLocale;
- var _addPathPrefix = __webpack_require__(774);
- var _pathHasPrefix = __webpack_require__(841);
+ var _addPathPrefix = __webpack_require__(466);
+ var _pathHasPrefix = __webpack_require__(590);
function addLocale(path, locale, defaultLocale, ignorePrefix) {
if (
locale &&
@@ -197,7 +197,7 @@
/***/
},
- /***/ 774: /***/ (
+ /***/ 466: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -208,7 +208,7 @@
value: true
});
exports.addPathPrefix = addPathPrefix;
- var _parsePath = __webpack_require__(70);
+ var _parsePath = __webpack_require__(422);
function addPathPrefix(path, prefix) {
if (!path.startsWith("/") || !prefix) {
return path;
@@ -220,7 +220,7 @@
/***/
},
- /***/ 114: /***/ (
+ /***/ 458: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -231,7 +231,7 @@
value: true
});
exports.addPathSuffix = addPathSuffix;
- var _parsePath = __webpack_require__(70);
+ var _parsePath = __webpack_require__(422);
function addPathSuffix(path, suffix) {
if (!path.startsWith("/") || !suffix) {
return path;
@@ -243,17 +243,21 @@
/***/
},
- /***/ 36: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
+ /***/ 613: /***/ (
+ __unused_webpack_module,
+ exports,
+ __webpack_require__
+ ) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.formatNextPathnameInfo = formatNextPathnameInfo;
- var _removeTrailingSlash = __webpack_require__(675);
- var _addPathPrefix = __webpack_require__(774);
- var _addPathSuffix = __webpack_require__(114);
- var _addLocale = __webpack_require__(777);
+ var _removeTrailingSlash = __webpack_require__(77);
+ var _addPathPrefix = __webpack_require__(466);
+ var _addPathSuffix = __webpack_require__(458);
+ var _addLocale = __webpack_require__(893);
function formatNextPathnameInfo(info) {
let pathname = (0, _addLocale).addLocale(
info.pathname,
@@ -281,7 +285,7 @@
/***/
},
- /***/ 763: /***/ (
+ /***/ 769: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -292,9 +296,9 @@
value: true
});
exports.getNextPathnameInfo = getNextPathnameInfo;
- var _normalizeLocalePath = __webpack_require__(142);
- var _removePathPrefix = __webpack_require__(565);
- var _pathHasPrefix = __webpack_require__(841);
+ var _normalizeLocalePath = __webpack_require__(846);
+ var _removePathPrefix = __webpack_require__(344);
+ var _pathHasPrefix = __webpack_require__(590);
function getNextPathnameInfo(pathname, options) {
var _nextConfig;
const { basePath, i18n, trailingSlash } =
@@ -344,7 +348,7 @@
/***/
},
- /***/ 70: /***/ (__unused_webpack_module, exports) => {
+ /***/ 422: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -380,7 +384,7 @@
/***/
},
- /***/ 841: /***/ (
+ /***/ 590: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -391,7 +395,7 @@
value: true
});
exports.pathHasPrefix = pathHasPrefix;
- var _parsePath = __webpack_require__(70);
+ var _parsePath = __webpack_require__(422);
function pathHasPrefix(path, prefix) {
if (typeof path !== "string") {
return false;
@@ -403,7 +407,7 @@
/***/
},
- /***/ 564: /***/ (__unused_webpack_module, exports) => {
+ /***/ 52: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -422,7 +426,7 @@
/***/
},
- /***/ 565: /***/ (
+ /***/ 344: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -433,7 +437,7 @@
value: true
});
exports.removePathPrefix = removePathPrefix;
- var _pathHasPrefix = __webpack_require__(841);
+ var _pathHasPrefix = __webpack_require__(590);
function removePathPrefix(path, prefix) {
if ((0, _pathHasPrefix).pathHasPrefix(path, prefix)) {
const withoutPrefix = path.slice(prefix.length);
@@ -447,7 +451,7 @@
/***/
},
- /***/ 675: /***/ (__unused_webpack_module, exports) => {
+ /***/ 77: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -461,7 +465,7 @@
/***/
},
- /***/ 748: /***/ module => {
+ /***/ 54: /***/ module => {
var __dirname = "/";
(() => {
"use strict";
@@ -589,7 +593,7 @@
/***/
},
- /***/ 491: /***/ (module, exports, __webpack_require__) => {
+ /***/ 826: /***/ (module, exports, __webpack_require__) => {
var __dirname = "/";
var __WEBPACK_AMD_DEFINE_RESULT__;
(() => {
@@ -1431,11 +1435,7 @@
/***/
},
- /***/ 222: /***/ (
- __unused_webpack_module,
- exports,
- __webpack_require__
- ) => {
+ /***/ 35: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var __webpack_unused_export__;
@@ -1444,13 +1444,13 @@
};
exports.VL = adapter;
exports.OT = blockUnallowedResponse;
- var _error = __webpack_require__(626);
- var _utils = __webpack_require__(20);
- var _fetchEvent = __webpack_require__(575);
- var _request = __webpack_require__(989);
- var _response = __webpack_require__(690);
- var _relativizeUrl = __webpack_require__(564);
- var _nextUrl = __webpack_require__(685);
+ var _error = __webpack_require__(182);
+ var _utils = __webpack_require__(93);
+ var _fetchEvent = __webpack_require__(339);
+ var _request = __webpack_require__(67);
+ var _response = __webpack_require__(367);
+ var _relativizeUrl = __webpack_require__(52);
+ var _nextUrl = __webpack_require__(322);
async function adapter(params) {
const requestUrl = new _nextUrl.NextURL(params.request.url, {
headers: params.request.headers,
@@ -1616,7 +1616,7 @@
/***/
},
- /***/ 626: /***/ (__unused_webpack_module, exports) => {
+ /***/ 182: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -1657,7 +1657,7 @@
/***/
},
- /***/ 685: /***/ (
+ /***/ 322: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -1667,10 +1667,10 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
- var _detectDomainLocale = __webpack_require__(893);
- var _formatNextPathnameInfo = __webpack_require__(36);
- var _getHostname = __webpack_require__(734);
- var _getNextPathnameInfo = __webpack_require__(763);
+ var _detectDomainLocale = __webpack_require__(936);
+ var _formatNextPathnameInfo = __webpack_require__(613);
+ var _getHostname = __webpack_require__(242);
+ var _getNextPathnameInfo = __webpack_require__(769);
const Internal = Symbol("NextURLInternal");
class NextURL {
constructor(input, baseOrOpts, opts) {
@@ -1891,7 +1891,7 @@
/***/
},
- /***/ 508: /***/ (
+ /***/ 256: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -1907,8 +1907,8 @@
return _types.CookieSerializeOptions;
}
});
- var _cookie = _interopRequireDefault(__webpack_require__(748));
- var _types = __webpack_require__(229);
+ var _cookie = _interopRequireDefault(__webpack_require__(54));
+ var _types = __webpack_require__(880);
function _interopRequireDefault(obj) {
return obj && obj.__esModule
? obj
@@ -2040,7 +2040,7 @@
/***/
},
- /***/ 575: /***/ (
+ /***/ 339: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -2051,7 +2051,7 @@
value: true
});
exports.waitUntilSymbol = void 0;
- var _error = __webpack_require__(626);
+ var _error = __webpack_require__(182);
const responseSymbol = Symbol("response");
const passThroughSymbol = Symbol("passThrough");
const waitUntilSymbol = Symbol("waitUntil");
@@ -2104,21 +2104,17 @@
/***/
},
- /***/ 989: /***/ (
- __unused_webpack_module,
- exports,
- __webpack_require__
- ) => {
+ /***/ 67: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.INTERNALS = void 0;
- var _nextUrl = __webpack_require__(685);
- var _utils = __webpack_require__(20);
- var _error = __webpack_require__(626);
- var _cookies = __webpack_require__(508);
+ var _nextUrl = __webpack_require__(322);
+ var _utils = __webpack_require__(93);
+ var _error = __webpack_require__(182);
+ var _cookies = __webpack_require__(256);
const INTERNALS = Symbol("internal request");
exports.INTERNALS = INTERNALS;
class NextRequest extends Request {
@@ -2165,7 +2161,7 @@
/***/
},
- /***/ 690: /***/ (
+ /***/ 367: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -2175,9 +2171,9 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
- var _nextUrl = __webpack_require__(685);
- var _utils = __webpack_require__(20);
- var _cookies = __webpack_require__(508);
+ var _nextUrl = __webpack_require__(322);
+ var _utils = __webpack_require__(93);
+ var _cookies = __webpack_require__(256);
const INTERNALS = Symbol("internal response");
const REDIRECTS = new Set([301, 302, 303, 307, 308]);
class NextResponse extends Response {
@@ -2252,7 +2248,7 @@
/***/
},
- /***/ 240: /***/ (
+ /***/ 932: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -2266,7 +2262,7 @@
__webpack_unused_export__ = isBot;
exports.Nf = userAgentFromString;
exports.WE = userAgent;
- var _uaParserJs = _interopRequireDefault(__webpack_require__(491));
+ var _uaParserJs = _interopRequireDefault(__webpack_require__(826));
function _interopRequireDefault(obj) {
return obj && obj.__esModule
? obj
@@ -2294,7 +2290,7 @@
/***/
},
- /***/ 229: /***/ (__unused_webpack_module, exports) => {
+ /***/ 880: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -2306,7 +2302,7 @@
/***/
},
- /***/ 20: /***/ (__unused_webpack_module, exports) => {
+ /***/ 93: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -2421,17 +2417,17 @@
/***/
},
- /***/ 335: /***/ (
+ /***/ 897: /***/ (
module,
__unused_webpack_exports,
__webpack_require__
) => {
module.exports = {
- NextRequest: __webpack_require__(989).NextRequest,
- NextResponse: __webpack_require__(690).NextResponse,
- userAgentFromString: __webpack_require__(240) /* .userAgentFromString */
+ NextRequest: __webpack_require__(67).NextRequest,
+ NextResponse: __webpack_require__(367).NextResponse,
+ userAgentFromString: __webpack_require__(932) /* .userAgentFromString */
.Nf,
- userAgent: __webpack_require__(240) /* .userAgent */.WE
+ userAgent: __webpack_require__(932) /* .userAgent */.WE
};
/***/
@@ -2441,7 +2437,7 @@
// webpackRuntimeModules
/******/ var __webpack_exec__ = moduleId =>
__webpack_require__((__webpack_require__.s = moduleId));
- /******/ var __webpack_exports__ = __webpack_exec__(776);
+ /******/ var __webpack_exports__ = __webpack_exec__(457);
/******/ (_ENTRIES =
typeof _ENTRIES === "undefined"
? {}
Diff for _buildManifest.js
@@ -1,25 +1,25 @@
self.__BUILD_MANIFEST = {
__rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
- "/": ["static\u002Fchunks\u002Fpages\u002Findex-006025f296d93d1f.js"],
- "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-ec6f2dc249481230.js"],
- "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-a331316989d05f14.js"],
+ "/": ["static\u002Fchunks\u002Fpages\u002Findex-1ecb7a225a122304.js"],
+ "/_error": ["static\u002Fchunks\u002Fpages\u002F_error-7c674188292aca70.js"],
+ "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-abb2ab71d4fb2340.js"],
"/css": [
"static\u002Fcss\u002F94fdbc56eafa2039.css",
- "static\u002Fchunks\u002Fpages\u002Fcss-68d7610c482ac563.js"
+ "static\u002Fchunks\u002Fpages\u002Fcss-100e45427e857c65.js"
],
"/dynamic": [
- "static\u002Fchunks\u002Fpages\u002Fdynamic-1a46c7fc3689a056.js"
+ "static\u002Fchunks\u002Fpages\u002Fdynamic-6c8a243387aa80a7.js"
],
- "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-c040cbe8d466bcb1.js"],
- "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-6bf8c96929eda019.js"],
- "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-a66f15dd084401b4.js"],
- "/link": ["static\u002Fchunks\u002Fpages\u002Flink-0a7d56aa8f36e733.js"],
+ "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-d456b89ea2e58ccb.js"],
+ "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-05db224a0b1fb76a.js"],
+ "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-4bc622dda856a1d4.js"],
+ "/link": ["static\u002Fchunks\u002Fpages\u002Flink-627f4caf2cbc296e.js"],
"/routerDirect": [
- "static\u002Fchunks\u002Fpages\u002FrouterDirect-19c824ccc8950973.js"
+ "static\u002Fchunks\u002Fpages\u002FrouterDirect-8a036a4ae9e5d6ed.js"
],
- "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-c3bfac97d4fbba00.js"],
+ "/script": ["static\u002Fchunks\u002Fpages\u002Fscript-d318755acc6c0b22.js"],
"/withRouter": [
- "static\u002Fchunks\u002Fpages\u002FwithRouter-d6891bab587638a3.js"
+ "static\u002Fchunks\u002Fpages\u002FwithRouter-dee19dca16003991.js"
],
sortedPages: [
"\u002F",
Diff for _app-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[888],
{
- /***/ 3479: /***/ function(
+ /***/ 122: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/_app",
function() {
- return __webpack_require__(5909);
+ return __webpack_require__(777);
}
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 5909: /***/ function(
+ /***/ 777: /***/ function(
__unused_webpack_module,
exports,
__webpack_require__
@@ -31,7 +31,7 @@
var _interop_require_default = __webpack_require__(6993) /* ["default"] */
.Z;
var _create_super = __webpack_require__(7615) /* ["default"] */.Z;
- var _runtimeJs = _interop_require_default(__webpack_require__(739));
+ var _runtimeJs = _interop_require_default(__webpack_require__(3994));
Object.defineProperty(exports, "__esModule", {
value: true
});
@@ -49,7 +49,7 @@
});
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(9496));
- var _utils = __webpack_require__(2973);
+ var _utils = __webpack_require__(6326);
function asyncGeneratorStep(
gen,
resolve,
@@ -179,7 +179,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [774, 179], function() {
- return __webpack_exec__(3479), __webpack_exec__(3668);
+ return __webpack_exec__(122), __webpack_exec__(7489);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for _error-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[820],
{
- /***/ 2929: /***/ function(
+ /***/ 3560: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/_error",
function() {
- return __webpack_require__(9103);
+ return __webpack_require__(2509);
}
]);
if (false) {
@@ -24,7 +24,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [888, 774, 179], function() {
- return __webpack_exec__(2929);
+ return __webpack_exec__(3560);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for amp-HASH.js
@@ -1,17 +1,17 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[216],
{
- /***/ 94: /***/ function(
+ /***/ 7941: /***/ function(
module,
__unused_webpack_exports,
__webpack_require__
) {
- module.exports = __webpack_require__(2562);
+ module.exports = __webpack_require__(6824);
/***/
},
- /***/ 9028: /***/ function(
+ /***/ 8958: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -19,7 +19,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/amp",
function() {
- return __webpack_require__(6385);
+ return __webpack_require__(9302);
}
]);
if (false) {
@@ -28,7 +28,7 @@
/***/
},
- /***/ 2562: /***/ function(module, exports, __webpack_require__) {
+ /***/ 6824: /***/ function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -36,8 +36,8 @@
});
exports.useAmp = useAmp;
var _react = _interopRequireDefault(__webpack_require__(9496));
- var _ampContext = __webpack_require__(2556);
- var _ampMode = __webpack_require__(7853);
+ var _ampContext = __webpack_require__(5789);
+ var _ampMode = __webpack_require__(9208);
function _interopRequireDefault(obj) {
return obj && obj.__esModule
? obj
@@ -66,7 +66,7 @@
/***/
},
- /***/ 6385: /***/ function(
+ /***/ 9302: /***/ function(
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -83,7 +83,7 @@
/* harmony export */
});
/* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
- 94
+ 7941
);
/* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(
next_amp__WEBPACK_IMPORTED_MODULE_0__
@@ -107,7 +107,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [888, 774, 179], function() {
- return __webpack_exec__(9028);
+ return __webpack_exec__(8958);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for css-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[706],
{
- /***/ 8281: /***/ function(
+ /***/ 9557: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/css",
function() {
- return __webpack_require__(4347);
+ return __webpack_require__(79);
}
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 4347: /***/ function(
+ /***/ 79: /***/ function(
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -29,7 +29,7 @@
4637
);
/* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
- 4542
+ 2054
);
/* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
_css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -48,7 +48,7 @@
/***/
},
- /***/ 4542: /***/ function(module) {
+ /***/ 2054: /***/ function(module) {
// extracted by mini-css-extract-plugin
module.exports = { helloWorld: "css_helloWorld__qqNwY" };
@@ -61,7 +61,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [774, 888, 179], function() {
- return __webpack_exec__(8281);
+ return __webpack_exec__(9557);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[739],
{
- /***/ 2744: /***/ function(
+ /***/ 5695: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/dynamic",
function() {
- return __webpack_require__(5547);
+ return __webpack_require__(9525);
}
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 3005: /***/ function(module, exports, __webpack_require__) {
+ /***/ 6014: /***/ function(module, exports, __webpack_require__) {
"use strict";
var _instanceof = __webpack_require__(186) /* ["default"] */.Z;
@@ -28,7 +28,7 @@
exports["default"] = dynamic;
exports.noSSR = noSSR;
var _react = _interopRequireDefault(__webpack_require__(9496));
- var _loadable = _interopRequireDefault(__webpack_require__(9675));
+ var _loadable = _interopRequireDefault(__webpack_require__(7679));
function dynamic(dynamicOptions, options) {
var loadableFn = _loadable.default;
var loadableOptions = {
@@ -147,7 +147,7 @@
/***/
},
- /***/ 577: /***/ function(
+ /***/ 8416: /***/ function(
__unused_webpack_module,
exports,
__webpack_require__
@@ -174,7 +174,7 @@
/***/
},
- /***/ 9675: /***/ function(
+ /***/ 7679: /***/ function(
__unused_webpack_module,
exports,
__webpack_require__
@@ -186,9 +186,10 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
+ exports.Loadable = Loadable;
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(9496));
- var _loadableContext = __webpack_require__(577);
+ var _loadableContext = __webpack_require__(8416);
function _extends() {
_extends =
Object.assign ||
@@ -527,7 +528,7 @@
/***/
},
- /***/ 5547: /***/ function(
+ /***/ 9525: /***/ function(
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -544,7 +545,7 @@
4637
);
/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
- 1605
+ 2123
);
/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -553,13 +554,13 @@
var DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
function() {
return __webpack_require__
- .e(/* import() */ 299)
- .then(__webpack_require__.bind(__webpack_require__, 5299));
+ .e(/* import() */ 128)
+ .then(__webpack_require__.bind(__webpack_require__, 5128));
},
{
loadableGenerated: {
webpack: function() {
- return [/*require.resolve*/ 5299];
+ return [/*require.resolve*/ 5128];
}
}
}
@@ -589,12 +590,12 @@
/***/
},
- /***/ 1605: /***/ function(
+ /***/ 2123: /***/ function(
module,
__unused_webpack_exports,
__webpack_require__
) {
- module.exports = __webpack_require__(3005);
+ module.exports = __webpack_require__(6014);
/***/
},
@@ -696,7 +697,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [774, 888, 179], function() {
- return __webpack_exec__(2744);
+ return __webpack_exec__(5695);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for head-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[645],
{
- /***/ 4337: /***/ function(
+ /***/ 7148: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/head",
function() {
- return __webpack_require__(9288);
+ return __webpack_require__(7481);
}
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 9288: /***/ function(
+ /***/ 7481: /***/ function(
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -35,7 +35,7 @@
4637
);
/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
- 8915
+ 4616
);
/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(
next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -71,12 +71,12 @@
/***/
},
- /***/ 8915: /***/ function(
+ /***/ 4616: /***/ function(
module,
__unused_webpack_exports,
__webpack_require__
) {
- module.exports = __webpack_require__(681);
+ module.exports = __webpack_require__(4790);
/***/
}
@@ -87,7 +87,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [774, 888, 179], function() {
- return __webpack_exec__(4337);
+ return __webpack_exec__(7148);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[757],
{
- /***/ 4853: /***/ function(
+ /***/ 3515: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/hooks",
function() {
- return __webpack_require__(8892);
+ return __webpack_require__(3451);
}
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 8892: /***/ function(
+ /***/ 3451: /***/ function(
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -132,7 +132,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [774, 888, 179], function() {
- return __webpack_exec__(4853);
+ return __webpack_exec__(3515);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -26,7 +26,7 @@
/***/
},
- /***/ 7570: /***/ function(
+ /***/ 1487: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -34,7 +34,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/image",
function() {
- return __webpack_require__(1576);
+ return __webpack_require__(4789);
}
]);
if (false) {
@@ -43,7 +43,7 @@
/***/
},
- /***/ 8976: /***/ function(module, exports, __webpack_require__) {
+ /***/ 361: /***/ function(module, exports, __webpack_require__) {
"use strict";
var _define_property = __webpack_require__(6599) /* ["default"] */.Z;
@@ -52,14 +52,340 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
- exports["default"] = Image;
+ exports.Image = Image;
+ exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(9496));
- var _head = _interopRequireDefault(__webpack_require__(681));
- var _imageConfig = __webpack_require__(5282);
- var _useIntersection = __webpack_require__(227);
- var _imageConfigContext = __webpack_require__(8584);
- var _utils = __webpack_require__(2973);
- var _normalizeTrailingSlash = __webpack_require__(3892);
+ var _head = _interopRequireDefault(__webpack_require__(4790));
+ var _imageConfig = __webpack_require__(5676);
+ var _useIntersection = __webpack_require__(5668);
+ var _imageConfigContext = __webpack_require__(76);
+ var _utils = __webpack_require__(6326);
+ var _normalizeTrailingSlash = __webpack_require__(7600);
+ function _extends() {
+ _extends =
+ Object.assign ||
+ function(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+ return target;
+ };
+ return _extends.apply(this, arguments);
+ }
+ function _interopRequireDefault(obj) {
+ return obj && obj.__esModule
+ ? obj
+ : {
+ default: obj
+ };
+ }
+ function _getRequireWildcardCache() {
+ if (typeof WeakMap !== "function") return null;
+ var cache = new WeakMap();
+ _getRequireWildcardCache = function _getRequireWildcardCache() {
+ return cache;
+ };
+ return cache;
+ }
+ function _interopRequireWildcard(obj) {
+ if (obj && obj.__esModule) {
+ return obj;
+ }
+ if (
+ obj === null ||
+ (typeof obj !== "object" && typeof obj !== "function")
+ ) {
+ return {
+ default: obj
+ };
+ }
+ var cache = _getRequireWildcardCache();
+ if (cache && cache.has(obj)) {
+ return cache.get(obj);
+ }
+ var newObj = {};
+ var hasPropertyDescriptor =
+ Object.defineProperty && Object.getOwnPropertyDescriptor;
+ for (var key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
+ var desc = hasPropertyDescriptor
+ ? Object.getOwnPropertyDescriptor(obj, key)
+ : null;
+ if (desc && (desc.get || desc.set)) {
+ Object.defineProperty(newObj, key, desc);
+ } else {
+ newObj[key] = obj[key];
+ }
+ }
+ }
+ newObj.default = obj;
+ if (cache) {
+ cache.set(obj, newObj);
+ }
+ return newObj;
+ }
+ function _objectWithoutPropertiesLoose(source, excluded) {
+ if (source == null) return {};
+ var target = {};
+ var sourceKeys = Object.keys(source);
+ var key, i;
+ for (i = 0; i < sourceKeys.length; i++) {
+ key = sourceKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ target[key] = source[key];
+ }
+ return target;
+ }
+ var ref =
+ {
+ deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+ imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+ path: "/_next/image",
+ loader: "default"
+ } || {},
+ _experimentalRemotePatterns = ref.experimentalRemotePatterns,
+ experimentalRemotePatterns =
+ _experimentalRemotePatterns === void 0
+ ? []
+ : _experimentalRemotePatterns,
+ experimentalUnoptimized = ref.experimentalUnoptimized;
+ var configEnv = {
+ deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+ imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+ path: "/_next/image",
+ loader: "default"
+ };
+ var loadedImageURLs = new Set();
+ var allImgs = new Map();
+ var perfObserver;
+ var emptyDataURL =
+ "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
+ if (false) {
+ }
+ var VALID_LOADING_VALUES = /* unused pure expression or super */ null && [
+ "lazy",
+ "eager",
+ undefined
+ ];
+ var loaders = new Map([
+ ["default", defaultLoader],
+ ["imgix", imgixLoader],
+ ["cloudinary", cloudinaryLoader],
+ ["akamai", akamaiLoader],
+ ["custom", customLoader]
+ ]);
+ var VALID_LAYOUT_VALUES = /* unused pure expression or super */ null && [
+ "fill",
+ "fixed",
+ "intrinsic",
+ "responsive",
+ undefined
+ ];
+ function isStaticRequire(src) {
+ return src.default !== undefined;
+ }
+ function isStaticImageData(src) {
+ return src.src !== undefined;
+ }
+ function isStaticImport(src) {
+ return (
+ typeof src === "object" &&
+ (isStaticRequire(src) || isStaticImageData(src))
+ );
+ }
+ function getWidths(param, width, layout, sizes) {
+ var deviceSizes = param.deviceSizes,
+ allSizes = param.allSizes;
+ if (sizes && (layout === "fill" || layout === "responsive")) {
+ // Find all the "vw" percent sizes used in the sizes prop
+ var viewportWidthRe = /(^|\s)(1?\d?\d)vw/g;
+ var percentSizes = [];
+ for (var match; (match = viewportWidthRe.exec(sizes)); match) {
+ percentSizes.push(parseInt(match[2]));
+ }
+ if (percentSizes.length) {
+ var _Math;
+ var smallestRatio =
+ (_Math = Math).min.apply(
+ _Math,
+ _to_consumable_array(percentSizes)
+ ) * 0.01;
+ return {
+ widths: allSizes.filter(function(s) {
+ return s >= deviceSizes[0] * smallestRatio;
+ }),
+ kind: "w"
+ };
+ }
+ return {
+ widths: allSizes,
+ kind: "w"
+ };
+ }
+ if (
+ typeof width !== "number" ||
+ layout === "fill" ||
+ layout === "responsive"
+ ) {
+ return {
+ widths: deviceSizes,
+ kind: "w"
+ };
+ }
+ var widths = _to_consumable_array(
+ new Set( // > are actually 3x in the green color, but only 1.5x in the red and
+ // > blue colors. Showing a 3x resolution image in the app vs a 2x
+ // > resolution image will be visually the same, though the 3x image
+ // > takes significantly more data. Even true 3x resolution screens are
+ // > wasteful as the human eye cannot see that level of detail without
+ // > something like a magnifying glass.
+ // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html
+ [width, width * 2 /*, width * 3*/].map(function(w) {
+ return (
+ allSizes.find(function(p) {
+ return p >= w;
+ }) || allSizes[allSizes.length - 1]
+ );
+ })
+ )
+ );
+ return {
+ widths: widths,
+ kind: "x"
+ };
+ }
+ function generateImgAttrs(param) {
+ var config = param.config,
+ src = param.src,
+ unoptimized = param.unoptimized,
+ layout = param.layout,
+ width = param.width,
+ quality = param.quality,
+ sizes = param.sizes,
+ loader = param.loader;
+ if (unoptimized) {
+ return {
+ src: src,
+ srcSet: undefined,
+ sizes: undefined
+ };
+ }
+ var ref = getWidths(config, width, layout, sizes),
+ widths = ref.widths,
+ kind = ref.kind;
+ var last = widths.length - 1;
+ return {
+ sizes: !sizes && kind === "w" ? "100vw" : sizes,
+ srcSet: widths
+ .map(function(w, i) {
+ return ""
+ .concat(
+ loader({
+ config: config,
+ src: src,
+ quality: quality,
+ width: w
+ }),
+ " "
+ )
+ .concat(kind === "w" ? w : i + 1)
+ .concat(kind);
+ })
+ .join(", "),
+ // It's intended to keep `src` the last attribute because React updates
+ // attributes in order. If we keep `src` the first one, Safari will
+ // immediately start to fetch `src`, before `sizes` and `srcSet` are even
+ // updated by React. That causes multiple unnecessary requests if `srcSet`
+ // and `sizes` are defined.
+ // This bug cannot be reproduced in Chrome or Firefox.
+ src: loader({
+ config: config,
+ src: src,
+ quality: quality,
+ width: widths[last]
+ })
+ };
+ }
+ function getInt(x) {
+ if (typeof x === "number") {
+ return x;
+ }
+ if (typeof x === "string") {
+ return parseInt(x, 10);
+ }
+ return undefined;
+ }
+ function defaultImageLoader(loaderProps) {
+ var ref;
+ var loaderKey =
+ ((ref = loaderProps.config) == null ? void 0 : ref.loader) ||
+ "default";
+ var load = loaders.get(loaderKey);
+ if (load) {
+ return load(loaderProps);
+ }
+ throw new Error(
+ 'Unknown "loader" found in "next.config.js". Expected: '
+ .concat(_imageConfig.VALID_LOADERS.join(", "), ". Received: ")
+ .concat(loaderKey)
+ );
+ }
+ // See https://stackoverflow.com/q/39777833/266535 for why we use this ref
+ // handler instead of the img's onLoad attribute.
+ function handleLoading(
+ img,
+ src,
+ layout,
+ placeholder,
+ onLoadingCompleteRef,
+ setBlurComplete
+ ) {
+ if (
+ !img ||
+ img.src === emptyDataURL ||
+ img["data-loaded-src"] === src
+ ) {
+ return;
+ }
+ img["data-loaded-src"] = src;
+ var p = "decode" in img ? img.decode() : Promise.resolve();
+ p.catch(function() {}).then(function() {
+ if (!img.parentNode) {
+ // Exit early in case of race condition:
+ // - onload() is called
+ // - decode() is called but incomplete
+ // - unmount is called
+ // - decode() completes
+ return;
+ }
+ loadedImageURLs.add(src);
+ if (placeholder === "blur") {
+ setBlurComplete(true);
+ }
+ if (
+ onLoadingCompleteRef == null ? void 0 : onLoadingCompleteRef.current
+ ) {
+ var naturalWidth = img.naturalWidth,
+ naturalHeight = img.naturalHeight;
+ // Pass back read-only primitive values but not the
+ // underlying DOM element because it could be misused.
+ onLoadingCompleteRef.current({
+ naturalWidth: naturalWidth,
+ naturalHeight: naturalHeight
+ });
+ }
+ if (false) {
+ var parent, ref;
+ }
+ });
+ }
+ var _default = Image;
+ exports["default"] = _default;
function Image(_param) {
var src = _param.src,
sizes = _param.sizes,
@@ -448,329 +774,6 @@
: null
);
}
- function _extends() {
- _extends =
- Object.assign ||
- function(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- return _extends.apply(this, arguments);
- }
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule
- ? obj
- : {
- default: obj
- };
- }
- function _getRequireWildcardCache() {
- if (typeof WeakMap !== "function") return null;
- var cache = new WeakMap();
- _getRequireWildcardCache = function _getRequireWildcardCache() {
- return cache;
- };
- return cache;
- }
- function _interopRequireWildcard(obj) {
- if (obj && obj.__esModule) {
- return obj;
- }
- if (
- obj === null ||
- (typeof obj !== "object" && typeof obj !== "function")
- ) {
- return {
- default: obj
- };
- }
- var cache = _getRequireWildcardCache();
- if (cache && cache.has(obj)) {
- return cache.get(obj);
- }
- var newObj = {};
- var hasPropertyDescriptor =
- Object.defineProperty && Object.getOwnPropertyDescriptor;
- for (var key in obj) {
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
- var desc = hasPropertyDescriptor
- ? Object.getOwnPropertyDescriptor(obj, key)
- : null;
- if (desc && (desc.get || desc.set)) {
- Object.defineProperty(newObj, key, desc);
- } else {
- newObj[key] = obj[key];
- }
- }
- }
- newObj.default = obj;
- if (cache) {
- cache.set(obj, newObj);
- }
- return newObj;
- }
- function _objectWithoutPropertiesLoose(source, excluded) {
- if (source == null) return {};
- var target = {};
- var sourceKeys = Object.keys(source);
- var key, i;
- for (i = 0; i < sourceKeys.length; i++) {
- key = sourceKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- target[key] = source[key];
- }
- return target;
- }
- var ref =
- {
- deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
- imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
- path: "/_next/image",
- loader: "default"
- } || {},
- _experimentalRemotePatterns = ref.experimentalRemotePatterns,
- experimentalRemotePatterns =
- _experimentalRemotePatterns === void 0
- ? []
- : _experimentalRemotePatterns,
- experimentalUnoptimized = ref.experimentalUnoptimized;
- var configEnv = {
- deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
- imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
- path: "/_next/image",
- loader: "default"
- };
- var loadedImageURLs = new Set();
- var allImgs = new Map();
- var perfObserver;
- var emptyDataURL =
- "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
- if (false) {
- }
- var VALID_LOADING_VALUES = /* unused pure expression or super */ null && [
- "lazy",
- "eager",
- undefined
- ];
- var loaders = new Map([
- ["default", defaultLoader],
- ["imgix", imgixLoader],
- ["cloudinary", cloudinaryLoader],
- ["akamai", akamaiLoader],
- ["custom", customLoader]
- ]);
- var VALID_LAYOUT_VALUES = /* unused pure expression or super */ null && [
- "fill",
- "fixed",
- "intrinsic",
- "responsive",
- undefined
- ];
- function isStaticRequire(src) {
- return src.default !== undefined;
- }
- function isStaticImageData(src) {
- return src.src !== undefined;
- }
- function isStaticImport(src) {
- return (
- typeof src === "object" &&
- (isStaticRequire(src) || isStaticImageData(src))
- );
- }
- function getWidths(param, width, layout, sizes) {
- var deviceSizes = param.deviceSizes,
- allSizes = param.allSizes;
- if (sizes && (layout === "fill" || layout === "responsive")) {
- // Find all the "vw" percent sizes used in the sizes prop
- var viewportWidthRe = /(^|\s)(1?\d?\d)vw/g;
- var percentSizes = [];
- for (var match; (match = viewportWidthRe.exec(sizes)); match) {
- percentSizes.push(parseInt(match[2]));
- }
- if (percentSizes.length) {
- var _Math;
- var smallestRatio =
- (_Math = Math).min.apply(
- _Math,
- _to_consumable_array(percentSizes)
- ) * 0.01;
- return {
- widths: allSizes.filter(function(s) {
- return s >= deviceSizes[0] * smallestRatio;
- }),
- kind: "w"
- };
- }
- return {
- widths: allSizes,
- kind: "w"
- };
- }
- if (
- typeof width !== "number" ||
- layout === "fill" ||
- layout === "responsive"
- ) {
- return {
- widths: deviceSizes,
- kind: "w"
- };
- }
- var widths = _to_consumable_array(
- new Set( // > are actually 3x in the green color, but only 1.5x in the red and
- // > blue colors. Showing a 3x resolution image in the app vs a 2x
- // > resolution image will be visually the same, though the 3x image
- // > takes significantly more data. Even true 3x resolution screens are
- // > wasteful as the human eye cannot see that level of detail without
- // > something like a magnifying glass.
- // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html
- [width, width * 2 /*, width * 3*/].map(function(w) {
- return (
- allSizes.find(function(p) {
- return p >= w;
- }) || allSizes[allSizes.length - 1]
- );
- })
- )
- );
- return {
- widths: widths,
- kind: "x"
- };
- }
- function generateImgAttrs(param) {
- var config = param.config,
- src = param.src,
- unoptimized = param.unoptimized,
- layout = param.layout,
- width = param.width,
- quality = param.quality,
- sizes = param.sizes,
- loader = param.loader;
- if (unoptimized) {
- return {
- src: src,
- srcSet: undefined,
- sizes: undefined
- };
- }
- var ref = getWidths(config, width, layout, sizes),
- widths = ref.widths,
- kind = ref.kind;
- var last = widths.length - 1;
- return {
- sizes: !sizes && kind === "w" ? "100vw" : sizes,
- srcSet: widths
- .map(function(w, i) {
- return ""
- .concat(
- loader({
- config: config,
- src: src,
- quality: quality,
- width: w
- }),
- " "
- )
- .concat(kind === "w" ? w : i + 1)
- .concat(kind);
- })
- .join(", "),
- // It's intended to keep `src` the last attribute because React updates
- // attributes in order. If we keep `src` the first one, Safari will
- // immediately start to fetch `src`, before `sizes` and `srcSet` are even
- // updated by React. That causes multiple unnecessary requests if `srcSet`
- // and `sizes` are defined.
- // This bug cannot be reproduced in Chrome or Firefox.
- src: loader({
- config: config,
- src: src,
- quality: quality,
- width: widths[last]
- })
- };
- }
- function getInt(x) {
- if (typeof x === "number") {
- return x;
- }
- if (typeof x === "string") {
- return parseInt(x, 10);
- }
- return undefined;
- }
- function defaultImageLoader(loaderProps) {
- var ref;
- var loaderKey =
- ((ref = loaderProps.config) == null ? void 0 : ref.loader) ||
- "default";
- var load = loaders.get(loaderKey);
- if (load) {
- return load(loaderProps);
- }
- throw new Error(
- 'Unknown "loader" found in "next.config.js". Expected: '
- .concat(_imageConfig.VALID_LOADERS.join(", "), ". Received: ")
- .concat(loaderKey)
- );
- }
- // See https://stackoverflow.com/q/39777833/266535 for why we use this ref
- // handler instead of the img's onLoad attribute.
- function handleLoading(
- img,
- src,
- layout,
- placeholder,
- onLoadingCompleteRef,
- setBlurComplete
- ) {
- if (
- !img ||
- img.src === emptyDataURL ||
- img["data-loaded-src"] === src
- ) {
- return;
- }
- img["data-loaded-src"] = src;
- var p = "decode" in img ? img.decode() : Promise.resolve();
- p.catch(function() {}).then(function() {
- if (!img.parentNode) {
- // Exit early in case of race condition:
- // - onload() is called
- // - decode() is called but incomplete
- // - unmount is called
- // - decode() completes
- return;
- }
- loadedImageURLs.add(src);
- if (placeholder === "blur") {
- setBlurComplete(true);
- }
- if (
- onLoadingCompleteRef == null ? void 0 : onLoadingCompleteRef.current
- ) {
- var naturalWidth = img.naturalWidth,
- naturalHeight = img.naturalHeight;
- // Pass back read-only primitive values but not the
- // underlying DOM element because it could be misused.
- onLoadingCompleteRef.current({
- naturalWidth: naturalWidth,
- naturalHeight: naturalHeight
- });
- }
- if (false) {
- var parent, ref;
- }
- });
- }
var ImageElement = function(_param) {
var imgAttributes = _param.imgAttributes,
heightInt = _param.heightInt,
@@ -1001,7 +1004,7 @@
/***/
},
- /***/ 227: /***/ function(module, exports, __webpack_require__) {
+ /***/ 5668: /***/ function(module, exports, __webpack_require__) {
"use strict";
var _sliced_to_array = __webpack_require__(7694) /* ["default"] */.Z;
@@ -1010,7 +1013,7 @@
});
exports.useIntersection = useIntersection;
var _react = __webpack_require__(9496);
- var _requestIdleCallback = __webpack_require__(5757);
+ var _requestIdleCallback = __webpack_require__(5617);
var hasIntersectionObserver = typeof IntersectionObserver === "function";
function useIntersection(param) {
var rootRef = param.rootRef,
@@ -1143,7 +1146,7 @@
/***/
},
- /***/ 1576: /***/ function(
+ /***/ 4789: /***/ function(
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -1164,8 +1167,8 @@
// EXTERNAL MODULE: ./node_modules/.pnpm/react@17.0.2/node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(4637);
- // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_sfoxds7t5ydpegc3knd667wn6m/node_modules/next/image.js
- var next_image = __webpack_require__(8114);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_sfoxds7t5ydpegc3knd667wn6m/node_modules/next/image.js
+ var next_image = __webpack_require__(4033);
var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // CONCATENATED MODULE: ./pages/nextjs.png
/* harmony default export */ var nextjs = {
src: "/_next/static/media/nextjs.cae0b805.png",
@@ -1193,12 +1196,12 @@
/***/
},
- /***/ 8114: /***/ function(
+ /***/ 4033: /***/ function(
module,
__unused_webpack_exports,
__webpack_require__
) {
- module.exports = __webpack_require__(8976);
+ module.exports = __webpack_require__(361);
/***/
}
@@ -1209,7 +1212,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [774, 888, 179], function() {
- return __webpack_exec__(7570);
+ return __webpack_exec__(1487);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for index-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[405],
{
- /***/ 4786: /***/ function(
+ /***/ 6967: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/",
function() {
- return __webpack_require__(5355);
+ return __webpack_require__(3973);
}
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 5355: /***/ function(
+ /***/ 3973: /***/ function(
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -46,7 +46,7 @@
return __webpack_require__((__webpack_require__.s = moduleId));
};
/******/ __webpack_require__.O(0, [888, 774, 179], function() {
- return __webpack_exec__(4786);
+ return __webpack_exec__(6967);
});
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[644],
{
- /***/ 2783: /***/ function(
+ /***/ 9367: /***/ function(
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/link",
function() {
- return __webpack_require__(4917);
+ return __webpack_require__(1849);
}
]);
if (false) {
@@ -18,7 +18,7 @@
/***/
},
- /***/ 8494: /***/ function(module, exports) {
+ /***/ 1908: /***/ function(module, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -54,7 +54,7 @@
/***/
},
- /***/ 861: /***/ function(module, exports, __webpack_require__) {
+ /***/ 882: /***/ function(module, exports, __webpack_require__) {
"use strict";
var _sliced_to_array = __webpack_require__(7694) /* ["default"] */.Z;
@@ -62,15 +62,15 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
- exports["default"] = void 0;
+ exports["default"] = exports.Link = void 0;
var _react = _interopRequireDefault(__webpack_require__(9496));
- var _router = __webpack_require__(7733);
- var _addLocale = __webpack_require__(6049);
- var _routerContext = __webpack_require__(2488);
- var _appRouterContext = __webpack_require__(1849);
- var _useIntersection = __webpack_require__(227);
- var _getDomainLocale = __webpack_require__(8494);
- var _addBasePath = __webpack_require__(5090);
+ var _router = __webpack_require__(8340);
+ var _addLocale = __webpack_require__(9465);
+ var _routerContext = __webpack_require__(1349);
+ var _appRouterContext = __webpack_require__(3407);
+ var _useIntersection = __webpack_require__(5668);
+ var _getDomainLocale = __webpack_require__(1908);
+ var _addBasePath = __webpack_require__(8126);
function _interopRequireDefault(obj) {
return obj && obj.__esModule
? obj
@@ -392,6 +392,7 @@
});
var _default = Link;
exports["default"] = _default;
+ exports.Link = Link;
if (
(typeof exports.default === "function" ||
(typeof exports.default === "object" && exports.default !== null)) &&
@@ -407,7 +408,7 @@
/***/
},
- /***/ 227: /***/ function(module, exports, __webpack_require__) {
+ /***/ 5668: /***/ function(module, exports, __webpack_require__) {
"use strict";
var _sliced_to_array = __webpack_require__(7694) /* ["default"] */.Z;
@@ -416,7 +417,7 @@
});
exports.useIntersection = useIntersection;
var _react = __webpack_require__(9496);
- var _requestIdleCallback = __webpack_require__(5757);
+ var _requestIdleCallback = __webpack_require__(5617);
var hasIntersectionObserver = typeof IntersectionObserver === "function";
function useIntersection(param) {
var rootRef = param.rootRef,
@@ -549,7 +550,7 @@
/***/
},
- /***/ 1849: /***/ function(
+ /***/ 3407: /***/ function(
__unused_webpack_module,
Post job cleanup.
[command]/usr/bin/git version
git version 2.36.1
Temporarily overriding HOME='/home/runner/work/_temp/9ba2cdc4-bbdd-4823-bb28-ba8a5e63ade3' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/next.js/next.js
[command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
[command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
http.https://github.com/.extraheader
[command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
Cleaning up orphan processes
Commit: 4de3389827b7dfa68b8aae232e05f18c89447627
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a prior PR for this opened here #23341 it would be good to first get a failing test case like mentioned there so we can look into the best way to sort this out.
@ijjk I have created a minimum reproduction of #37524: https://codesandbox.io/s/trusting-goldwasser-6xn329?file=/index.jsx But I am not sure how to make it into an |
df8579c
to
47e5ebe
Compare
e078ebe
to
6b863fe
Compare
Bug
fixes #number
contributing.md
The PR is another attempt to resolve #37524.
Currently, almost all Next.js' essential exports are default export (using
export default
).However,
export default
would becomeexports.default
after pre-compilation to CommonJS.To prevent the usage like
const { default: Image } = require('next/image')
, Next.js introduces a build flaginteropClientDefaultExport
in pre-compilation, which would manually assignexport.default
tomodule.exports
:next.js/packages/next/taskfile-swc.js
Lines 118 to 126 in dc3bd76
However, the workaround is transformer-based, thus when Next.js generates type definitions using
tsc
, the outputd.ts
doesn't include theinteropDefaultExport
information:Here is a minimum reproduction at codesandbox: https://codesandbox.io/s/trusting-goldwasser-6xn329?file=/index.jsx
Previously, I have tried to resolve the issue by manually adjusting
d.ts
files (see #37605), but the syntax is invalid and is not recognized by TypeScript.In this PR I have tried a different approach, by making Next.js has both named export and default export:
The change is backward compatible and will not break any existing Next.js project.