-
Notifications
You must be signed in to change notification settings - Fork 30k
Add pino-related packages to server-external-packages #86884
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
Merged
Merged
+22
−3
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Collaborator
Stats from current PRDefault Build (Increase detected
|
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| buildDuration | 16.8s | 14.8s | N/A |
| buildDurationCached | 13.6s | 10.7s | N/A |
| nodeModulesSize | 456 MB | 456 MB | |
| nextStartRea..uration (ms) | 712ms | 721ms | N/A |
Client Bundles (main, webpack) Overall increase ⚠️
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| 4951-HASH.js gzip | 5.37 kB | 5.38 kB | N/A |
| 68680909-HASH.js gzip | 62.3 kB | 62.3 kB | N/A |
| 8034-HASH.js gzip | 52.8 kB | 53 kB | |
| 9564.HASH.js gzip | 170 B | 168 B | N/A |
| 9565-HASH.js gzip | 4.46 kB | 4.48 kB | N/A |
| framework-HASH.js gzip | 59.7 kB | 59.7 kB | N/A |
| main-app-HASH.js gzip | 255 B | 252 B | N/A |
| main-HASH.js gzip | 38.6 kB | 38.5 kB | N/A |
| webpack-HASH.js gzip | 1.69 kB | 1.69 kB | N/A |
| Overall change | 52.8 kB | 53 kB |
Legacy Client Bundles (polyfills)
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
| Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| _app-HASH.js gzip | 192 B | 194 B | N/A |
| _error-HASH.js gzip | 183 B | 182 B | N/A |
| css-HASH.js gzip | 334 B | 333 B | N/A |
| dynamic-HASH.js gzip | 1.79 kB | 1.81 kB | N/A |
| edge-ssr-HASH.js gzip | 254 B | 255 B | N/A |
| head-HASH.js gzip | 352 B | 349 B | N/A |
| hooks-HASH.js gzip | 383 B | 378 B | N/A |
| image-HASH.js gzip | 580 B | 581 B | N/A |
| index-HASH.js gzip | 259 B | 258 B | N/A |
| link-HASH.js gzip | 2.51 kB | 2.5 kB | N/A |
| routerDirect..HASH.js gzip | 317 B | 319 B | N/A |
| script-HASH.js gzip | 386 B | 386 B | ✓ |
| withRouter-HASH.js gzip | 314 B | 312 B | N/A |
| 1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
| Overall change | 492 B | 492 B | ✓ |
Client Build Manifests
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| _buildManifest.js gzip | 735 B | 738 B | N/A |
| Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| index.html gzip | 524 B | 522 B | N/A |
| link.html gzip | 540 B | 538 B | N/A |
| withRouter.html gzip | 521 B | 518 B | N/A |
| Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size Overall increase ⚠️
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| edge-ssr.js gzip | 124 kB | 124 kB | |
| page.js gzip | 236 kB | 235 kB | N/A |
| Overall change | 124 kB | 124 kB |
Middleware size
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| middleware-b..fest.js gzip | 651 B | 652 B | N/A |
| middleware-r..fest.js gzip | 156 B | 156 B | ✓ |
| middleware.js gzip | 32.6 kB | 32.6 kB | N/A |
| edge-runtime..pack.js gzip | 846 B | 846 B | ✓ |
| Overall change | 1 kB | 1 kB | ✓ |
Next Runtimes
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| app-page-exp...dev.js gzip | 301 kB | 301 kB | N/A |
| app-page-exp..prod.js gzip | 155 kB | 155 kB | ✓ |
| app-page-tur...dev.js gzip | 300 kB | 300 kB | N/A |
| app-page-tur..prod.js gzip | 155 kB | 155 kB | ✓ |
| app-page-tur...dev.js gzip | 297 kB | 297 kB | ✓ |
| app-page-tur..prod.js gzip | 153 kB | 153 kB | ✓ |
| app-page.run...dev.js gzip | 297 kB | 297 kB | ✓ |
| app-page.run..prod.js gzip | 153 kB | 153 kB | ✓ |
| app-route-ex...dev.js gzip | 68.5 kB | 68.5 kB | ✓ |
| app-route-ex..prod.js gzip | 47.4 kB | 47.4 kB | ✓ |
| app-route-tu...dev.js gzip | 68.6 kB | 68.6 kB | ✓ |
| app-route-tu..prod.js gzip | 47.4 kB | 47.4 kB | ✓ |
| app-route-tu...dev.js gzip | 68.2 kB | 68.2 kB | ✓ |
| app-route-tu..prod.js gzip | 47.2 kB | 47.2 kB | ✓ |
| app-route.ru...dev.js gzip | 68.1 kB | 68.1 kB | ✓ |
| app-route.ru..prod.js gzip | 47.1 kB | 47.1 kB | ✓ |
| dist_client_...dev.js gzip | 326 B | 326 B | ✓ |
| dist_client_...dev.js gzip | 328 B | 328 B | ✓ |
| dist_client_...dev.js gzip | 320 B | 320 B | ✓ |
| dist_client_...dev.js gzip | 318 B | 318 B | ✓ |
| pages-api-tu...dev.js gzip | 40.9 kB | 40.9 kB | ✓ |
| pages-api-tu..prod.js gzip | 31 kB | 31 kB | ✓ |
| pages-api.ru...dev.js gzip | 40.9 kB | 40.9 kB | ✓ |
| pages-api.ru..prod.js gzip | 31 kB | 31 kB | ✓ |
| pages-turbo....dev.js gzip | 50.4 kB | 50.4 kB | ✓ |
| pages-turbo...prod.js gzip | 37.9 kB | 37.9 kB | ✓ |
| pages.runtim...dev.js gzip | 50.4 kB | 50.4 kB | ✓ |
| pages.runtim..prod.js gzip | 37.9 kB | 37.9 kB | ✓ |
| server.runti..prod.js gzip | 59.8 kB | 59.8 kB | ✓ |
| Overall change | 2.05 MB | 2.05 MB | ✓ |
build cache
| vercel/next.js canary | vercel/next.js mischnic/pino-external | Change | |
|---|---|---|---|
| 0.pack gzip | 3.1 MB | 3.1 MB | N/A |
| index.pack gzip | 95 kB | 94.3 kB | N/A |
| Overall change | 0 B | 0 B | ✓ |
Diff details
Diff for page.js
Diff too large to display
Diff for middleware.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for _buildManifest.js
@@ -611,35 +611,35 @@ self.__BUILD_MANIFEST = (function (a, b, c) {
numHashes: NaN,
bitArray: [],
},
- "/": ["static\u002Fchunks\u002Fpages\u002Findex-b087a17851e05d6f.js"],
+ "/": ["static\u002Fchunks\u002Fpages\u002Findex-3361ed053e34d664.js"],
"/_error": [
- "static\u002Fchunks\u002Fpages\u002F_error-0d6cadd1684bf608.js",
+ "static\u002Fchunks\u002Fpages\u002F_error-c7ffde23a6d1e061.js",
],
"/css": [
"static\u002Fcss\u002Fded6b86ab9cc0a1f.css",
- "static\u002Fchunks\u002Fpages\u002Fcss-d018beb4ee617700.js",
+ "static\u002Fchunks\u002Fpages\u002Fcss-0b6177a056485c89.js",
],
"/dynamic": [
- "static\u002Fchunks\u002Fpages\u002Fdynamic-22fa1f98925287e3.js",
+ "static\u002Fchunks\u002Fpages\u002Fdynamic-8e7954693aad6744.js",
],
"/edge-ssr": [
- "static\u002Fchunks\u002Fpages\u002Fedge-ssr-79392016bf448b0e.js",
+ "static\u002Fchunks\u002Fpages\u002Fedge-ssr-7515805a0793fb50.js",
],
- "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-7c5bbe7e16e0461c.js"],
- "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-9fbae4ac20575871.js"],
+ "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-18530459356f6f47.js"],
+ "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-221843a8082c5fe0.js"],
"/image": [
- "static\u002Fchunks\u002F9565-2e0c4004742fb14a.js",
- "static\u002Fchunks\u002Fpages\u002Fimage-811425894781cf7d.js",
+ "static\u002Fchunks\u002F5467-5440e689c12d4e40.js",
+ "static\u002Fchunks\u002Fpages\u002Fimage-fe20cdcfe67a7d4d.js",
],
- "/link": ["static\u002Fchunks\u002Fpages\u002Flink-14068c948da9dc39.js"],
+ "/link": ["static\u002Fchunks\u002Fpages\u002Flink-814c1a2b0c6775c5.js"],
"/routerDirect": [
- "static\u002Fchunks\u002Fpages\u002FrouterDirect-6d3e9dcd1348423d.js",
+ "static\u002Fchunks\u002Fpages\u002FrouterDirect-a0028e2a28aa8c85.js",
],
"/script": [
- "static\u002Fchunks\u002Fpages\u002Fscript-eda35f71f7a910ba.js",
+ "static\u002Fchunks\u002Fpages\u002Fscript-5b734e02315dd67a.js",
],
"/withRouter": [
- "static\u002Fchunks\u002Fpages\u002FwithRouter-4a6d5ec263e28451.js",
+ "static\u002Fchunks\u002Fpages\u002FwithRouter-db2aefa859481ae2.js",
],
sortedPages: [
"\u002F",Diff for css-HASH.js
@@ -1,14 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[9813],
{
- /***/ 1361: /***/ (module) => {
- // extracted by mini-css-extract-plugin
- module.exports = { helloWorld: "css_helloWorld__aUdUq" };
-
- /***/
- },
-
- /***/ 1651: /***/ (
+ /***/ 942: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -16,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/css",
function () {
- return __webpack_require__(3321);
+ return __webpack_require__(3023);
},
]);
if (false) {
@@ -25,7 +18,7 @@
/***/
},
- /***/ 3321: /***/ (
+ /***/ 3023: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -39,7 +32,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(7002);
/* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(1361);
+ __webpack_require__(3264);
/* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
_css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -58,13 +51,20 @@
/***/
},
+
+ /***/ 3264: /***/ (module) => {
+ // extracted by mini-css-extract-plugin
+ module.exports = { helloWorld: "css_helloWorld__aUdUq" };
+
+ /***/
+ },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(1651)
+ __webpack_exec__(942)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;Diff for dynamic-HASH.js
@@ -1,177 +1,17 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[2291],
{
- /***/ 617: /***/ (
- __unused_webpack_module,
- exports,
- __webpack_require__
- ) => {
- "use strict";
- /* __next_internal_client_entry_do_not_use__ cjs */
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "LoadableContext", {
- enumerable: true,
- get: function () {
- return LoadableContext;
- },
- });
- const _interop_require_default = __webpack_require__(1532);
- const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(6466)
- );
- const LoadableContext = _react.default.createContext(null);
- if (false) {
- } //# sourceMappingURL=loadable-context.shared-runtime.js.map
-
- /***/
- },
-
- /***/ 620: /***/ (module, exports, __webpack_require__) => {
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- 0 && 0;
- function _export(target, all) {
- for (var name in all)
- Object.defineProperty(target, name, {
- enumerable: true,
- get: all[name],
- });
- }
- _export(exports, {
- /**
- * This function lets you dynamically import a component.
- * It uses [React.lazy()](https://react.dev/reference/react/lazy) with [Suspense](https://react.dev/reference/react/Suspense) under the hood.
- *
- * Read more: [Next.js Docs: `next/dynamic`](https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading#nextdynamic)
- */ default: function () {
- return dynamic;
- },
- noSSR: function () {
- return noSSR;
- },
- });
- const _interop_require_default = __webpack_require__(1532);
- const _jsxruntime = __webpack_require__(7002);
- const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(6466)
- );
- const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(3147)
- );
- const isServerSide = "object" === "undefined";
- // Normalize loader to return the module as form { default: Component } for `React.lazy`.
- // Also for backward compatible since next/dynamic allows to resolve a component directly with loader
- // Client component reference proxy need to be converted to a module.
- function convertModule(mod) {
- return {
- default: mod?.default || mod,
- };
- }
- function noSSR(LoadableInitializer, loadableOptions) {
- // Removing webpack and modules means react-loadable won't try preloading
- delete loadableOptions.webpack;
- delete loadableOptions.modules;
- // This check is necessary to prevent react-loadable from initializing on the server
- if (!isServerSide) {
- return LoadableInitializer(loadableOptions);
- }
- const Loading = loadableOptions.loading;
- // This will only be rendered on the server side
- return () =>
- /*#__PURE__*/ (0, _jsxruntime.jsx)(Loading, {
- error: null,
- isLoading: true,
- pastDelay: false,
- timedOut: false,
- });
- }
- function dynamic(dynamicOptions, options) {
- let loadableFn = _loadablesharedruntime.default;
- let loadableOptions = {
- // A loading component is not required, so we default it
- loading: ({ error, isLoading, pastDelay }) => {
- if (!pastDelay) return null;
- if (false) {
- }
- return null;
- },
- };
- // Support for direct import(), eg: dynamic(import('../hello-world'))
- // Note that this is only kept for the edge case where someone is passing in a promise as first argument
- // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))
- // To make sure we don't execute the import without rendering first
- if (dynamicOptions instanceof Promise) {
- loadableOptions.loader = () => dynamicOptions;
- // Support for having import as a function, eg: dynamic(() => import('../hello-world'))
- } else if (typeof dynamicOptions === "function") {
- loadableOptions.loader = dynamicOptions;
- // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})
- } else if (typeof dynamicOptions === "object") {
- loadableOptions = {
- ...loadableOptions,
- ...dynamicOptions,
- };
- }
- // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})
- loadableOptions = {
- ...loadableOptions,
- ...options,
- };
- const loaderFn = loadableOptions.loader;
- const loader = () =>
- loaderFn != null
- ? loaderFn().then(convertModule)
- : Promise.resolve(convertModule(() => null));
- // coming from build/babel/plugins/react-loadable-plugin.js
- if (loadableOptions.loadableGenerated) {
- loadableOptions = {
- ...loadableOptions,
- ...loadableOptions.loadableGenerated,
- };
- delete loadableOptions.loadableGenerated;
- }
- // support for disabling server side rendering, eg: dynamic(() => import('../hello-world'), {ssr: false}).
- if (typeof loadableOptions.ssr === "boolean" && !loadableOptions.ssr) {
- delete loadableOptions.webpack;
- delete loadableOptions.modules;
- return noSSR(loadableFn, loadableOptions);
- }
- return loadableFn({
- ...loadableOptions,
- loader: loader,
- });
- }
- if (
- (typeof exports.default === "function" ||
- (typeof exports.default === "object" && exports.default !== null)) &&
- typeof exports.default.__esModule === "undefined"
- ) {
- Object.defineProperty(exports.default, "__esModule", {
- value: true,
- });
- Object.assign(exports.default, exports);
- module.exports = exports.default;
- } //# sourceMappingURL=dynamic.js.map
-
- /***/
- },
-
- /***/ 1173: /***/ (
+ /***/ 1151: /***/ (
module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(620);
+ module.exports = __webpack_require__(7368);
/***/
},
- /***/ 2907: /***/ (
+ /***/ 4773: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -186,7 +26,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(7002);
/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(1173);
+ __webpack_require__(1151);
/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -195,12 +35,12 @@
const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
() =>
__webpack_require__
- .e(/* import() */ 9564)
- .then(__webpack_require__.bind(__webpack_require__, 9564))
+ .e(/* import() */ 6022)
+ .then(__webpack_require__.bind(__webpack_require__, 6022))
.then((mod) => mod.Hello),
{
loadableGenerated: {
- webpack: () => [/*require.resolve*/ 9564],
+ webpack: () => [/*require.resolve*/ 6022],
},
}
);
@@ -227,7 +67,7 @@
/***/
},
- /***/ 3147: /***/ (
+ /***/ 5631: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -269,7 +109,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
const _react = /*#__PURE__*/ _interop_require_default._(
__webpack_require__(6466)
);
- const _loadablecontextsharedruntime = __webpack_require__(617);
+ const _loadablecontextsharedruntime = __webpack_require__(6861);
function resolve(obj) {
return obj && obj.default ? obj.default : obj;
}
@@ -502,7 +342,167 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
/***/
},
- /***/ 4236: /***/ (
+ /***/ 6861: /***/ (
+ __unused_webpack_module,
+ exports,
+ __webpack_require__
+ ) => {
+ "use strict";
+ /* __next_internal_client_entry_do_not_use__ cjs */
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "LoadableContext", {
+ enumerable: true,
+ get: function () {
+ return LoadableContext;
+ },
+ });
+ const _interop_require_default = __webpack_require__(1532);
+ const _react = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(6466)
+ );
+ const LoadableContext = _react.default.createContext(null);
+ if (false) {
+ } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+
+ /***/
+ },
+
+ /***/ 7368: /***/ (module, exports, __webpack_require__) => {
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ 0 && 0;
+ function _export(target, all) {
+ for (var name in all)
+ Object.defineProperty(target, name, {
+ enumerable: true,
+ get: all[name],
+ });
+ }
+ _export(exports, {
+ /**
+ * This function lets you dynamically import a component.
+ * It uses [React.lazy()](https://react.dev/reference/react/lazy) with [Suspense](https://react.dev/reference/react/Suspense) under the hood.
+ *
+ * Read more: [Next.js Docs: `next/dynamic`](https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading#nextdynamic)
+ */ default: function () {
+ return dynamic;
+ },
+ noSSR: function () {
+ return noSSR;
+ },
+ });
+ const _interop_require_default = __webpack_require__(1532);
+ const _jsxruntime = __webpack_require__(7002);
+ const _react = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(6466)
+ );
+ const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(5631)
+ );
+ const isServerSide = "object" === "undefined";
+ // Normalize loader to return the module as form { default: Component } for `React.lazy`.
+ // Also for backward compatible since next/dynamic allows to resolve a component directly with loader
+ // Client component reference proxy need to be converted to a module.
+ function convertModule(mod) {
+ return {
+ default: mod?.default || mod,
+ };
+ }
+ function noSSR(LoadableInitializer, loadableOptions) {
+ // Removing webpack and modules means react-loadable won't try preloading
+ delete loadableOptions.webpack;
+ delete loadableOptions.modules;
+ // This check is necessary to prevent react-loadable from initializing on the server
+ if (!isServerSide) {
+ return LoadableInitializer(loadableOptions);
+ }
+ const Loading = loadableOptions.loading;
+ // This will only be rendered on the server side
+ return () =>
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(Loading, {
+ error: null,
+ isLoading: true,
+ pastDelay: false,
+ timedOut: false,
+ });
+ }
+ function dynamic(dynamicOptions, options) {
+ let loadableFn = _loadablesharedruntime.default;
+ let loadableOptions = {
+ // A loading component is not required, so we default it
+ loading: ({ error, isLoading, pastDelay }) => {
+ if (!pastDelay) return null;
+ if (false) {
+ }
+ return null;
+ },
+ };
+ // Support for direct import(), eg: dynamic(import('../hello-world'))
+ // Note that this is only kept for the edge case where someone is passing in a promise as first argument
+ // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))
+ // To make sure we don't execute the import without rendering first
+ if (dynamicOptions instanceof Promise) {
+ loadableOptions.loader = () => dynamicOptions;
+ // Support for having import as a function, eg: dynamic(() => import('../hello-world'))
+ } else if (typeof dynamicOptions === "function") {
+ loadableOptions.loader = dynamicOptions;
+ // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})
+ } else if (typeof dynamicOptions === "object") {
+ loadableOptions = {
+ ...loadableOptions,
+ ...dynamicOptions,
+ };
+ }
+ // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})
+ loadableOptions = {
+ ...loadableOptions,
+ ...options,
+ };
+ const loaderFn = loadableOptions.loader;
+ const loader = () =>
+ loaderFn != null
+ ? loaderFn().then(convertModule)
+ : Promise.resolve(convertModule(() => null));
+ // coming from build/babel/plugins/react-loadable-plugin.js
+ if (loadableOptions.loadableGenerated) {
+ loadableOptions = {
+ ...loadableOptions,
+ ...loadableOptions.loadableGenerated,
+ };
+ delete loadableOptions.loadableGenerated;
+ }
+ // support for disabling server side rendering, eg: dynamic(() => import('../hello-world'), {ssr: false}).
+ if (typeof loadableOptions.ssr === "boolean" && !loadableOptions.ssr) {
+ delete loadableOptions.webpack;
+ delete loadableOptions.modules;
+ return noSSR(loadableFn, loadableOptions);
+ }
+ return loadableFn({
+ ...loadableOptions,
+ loader: loader,
+ });
+ }
+ if (
+ (typeof exports.default === "function" ||
+ (typeof exports.default === "object" && exports.default !== null)) &&
+ typeof exports.default.__esModule === "undefined"
+ ) {
+ Object.defineProperty(exports.default, "__esModule", {
+ value: true,
+ });
+ Object.assign(exports.default, exports);
+ module.exports = exports.default;
+ } //# sourceMappingURL=dynamic.js.map
+
+ /***/
+ },
+
+ /***/ 8258: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -510,7 +510,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
(window.__NEXT_P = window.__NEXT_P || []).push([
"/dynamic",
function () {
- return __webpack_require__(2907);
+ return __webpack_require__(4773);
},
]);
if (false) {
@@ -524,7 +524,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(4236)
+ __webpack_exec__(8258)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;Diff for head-HASH.js
@@ -1,24 +1,13 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[5350],
{
- /***/ 2366: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/head",
- function () {
- return __webpack_require__(8140);
- },
- ]);
- if (false) {
- }
+ /***/ 48: /***/ (module, __unused_webpack_exports, __webpack_require__) => {
+ module.exports = __webpack_require__(8141);
/***/
},
- /***/ 8140: /***/ (
+ /***/ 2682: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -33,7 +22,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(7002);
/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(9386);
+ __webpack_require__(48);
/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_head__WEBPACK_IMPORTED_MODULE_1__
@@ -67,12 +56,19 @@
/***/
},
- /***/ 9386: /***/ (
- module,
+ /***/ 2956: /***/ (
+ __unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(1649);
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/head",
+ function () {
+ return __webpack_require__(2682);
+ },
+ ]);
+ if (false) {
+ }
/***/
},
@@ -82,7 +78,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(2366)
+ __webpack_exec__(2956)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;Diff for image-HASH.js
@@ -1,7 +1,24 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[2983],
{
- /***/ 497: /***/ (
+ /***/ 8114: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/image",
+ function () {
+ return __webpack_require__(9180);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
+
+ /***/ 9180: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -18,8 +35,8 @@
// EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
var jsx_runtime = __webpack_require__(7002);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
- var next_image = __webpack_require__(9565);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
+ var next_image = __webpack_require__(5467);
var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
/* harmony default export */ const nextjs = {
src: "/_next/static/media/nextjs.cae0b805.png",
@@ -48,30 +65,13 @@
/***/
},
-
- /***/ 5748: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/image",
- function () {
- return __webpack_require__(497);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
- /******/ __webpack_require__.O(0, [9565, 636, 6593, 8792], () =>
- __webpack_exec__(5748)
+ /******/ __webpack_require__.O(0, [5467, 636, 6593, 8792], () =>
+ __webpack_exec__(8114)
);
/******/ 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([
[4672],
{
- /***/ 1182: /***/ (
+ /***/ 2156: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/link",
function () {
- return __webpack_require__(4610);
+ return __webpack_require__(8272);
},
]);
if (false) {
@@ -18,7 +18,220 @@
/***/
},
- /***/ 1557: /***/ (module, exports, __webpack_require__) => {
+ /***/ 4581: /***/ (module, exports, __webpack_require__) => {
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "useIntersection", {
+ enumerable: true,
+ get: function () {
+ return useIntersection;
+ },
+ });
+ const _react = __webpack_require__(6466);
+ const _requestidlecallback = __webpack_require__(7441);
+ const hasIntersectionObserver =
+ typeof IntersectionObserver === "function";
+ const observers = new Map();
+ const idList = [];
+ function createObserver(options) {
+ const id = {
+ root: options.root || null,
+ margin: options.rootMargin || "",
+ };
+ const existing = idList.find(
+ (obj) => obj.root === id.root && obj.margin === id.margin
+ );
+ let instance;
+ if (existing) {
+ instance = observers.get(existing);
+ if (instance) {
+ return instance;
+ }
+ }
+ const elements = new Map();
+ const observer = new IntersectionObserver((entries) => {
+ entries.forEach((entry) => {
+ const callback = elements.get(entry.target);
+ const isVisible =
+ entry.isIntersecting || entry.intersectionRatio > 0;
+ if (callback && isVisible) {
+ callback(isVisible);
+ }
+ });
+ }, options);
+ instance = {
+ id,
+ observer,
+ elements,
+ };
+ idList.push(id);
+ observers.set(id, instance);
+ return instance;
+ }
+ function observe(element, callback, options) {
+ const { id, observer, elements } = createObserver(options);
+ elements.set(element, callback);
+ observer.observe(element);
+ return function unobserve() {
+ elements.delete(element);
+ observer.unobserve(element);
+ // Destroy observer when there's nothing left to watch:
+ if (elements.size === 0) {
+ observer.disconnect();
+ observers.delete(id);
+ const index = idList.findIndex(
+ (obj) => obj.root === id.root && obj.margin === id.margin
+ );
+ if (index > -1) {
+ idList.splice(index, 1);
+ }
+ }
+ };
+ }
+ function useIntersection({ rootRef, rootMargin, disabled }) {
+ const isDisabled = disabled || !hasIntersectionObserver;
+ const [visible, setVisible] = (0, _react.useState)(false);
+ const elementRef = (0, _react.useRef)(null);
+ const setElement = (0, _react.useCallback)((element) => {
+ elementRef.current = element;
+ }, []);
+ (0, _react.useEffect)(() => {
+ if (hasIntersectionObserver) {
+ if (isDisabled || visible) return;
+ const element = elementRef.current;
+ if (element && element.tagName) {
+ const unobserve = observe(
+ element,
+ (isVisible) => isVisible && setVisible(isVisible),
+ {
+ root: rootRef?.current,
+ rootMargin,
+ }
+ );
+ return unobserve;
+ }
+ } else {
+ if (!visible) {
+ const idleCallback = (0,
+ _requestidlecallback.requestIdleCallback)(() => setVisible(true));
+ return () =>
+ (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
+ }
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
+ const resetVisible = (0, _react.useCallback)(() => {
+ setVisible(false);
+ }, []);
+ return [setElement, visible, resetVisible];
+ }
+ if (
+ (typeof exports.default === "function" ||
+ (typeof exports.default === "object" && exports.default !== null)) &&
+ typeof exports.default.__esModule === "undefined"
+ ) {
+ Object.defineProperty(exports.default, "__esModule", {
+ value: true,
+ });
+ Object.assign(exports.default, exports);
+ module.exports = exports.default;
+ } //# sourceMappingURL=use-intersection.js.map
+
+ /***/
+ },
+
+ /***/ 6155: /***/ (module, exports, __webpack_require__) => {
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "useMergedRef", {
+ enumerable: true,
+ get: function () {
+ return useMergedRef;
+ },
+ });
+ const _react = __webpack_require__(6466);
+ function useMergedRef(refA, refB) {
+ const cleanupA = (0, _react.useRef)(null);
+ const cleanupB = (0, _react.useRef)(null);
+ // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
+ // (this happens often if the user doesn't pass a ref to Link/Form/Image)
+ // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),
+ // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
+ // (because it hasn't been updated for React 19)
+ // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
+ // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
+ return (0, _react.useCallback)(
+ (current) => {
+ if (current === null) {
+ const cleanupFnA = cleanupA.current;
+ if (cleanupFnA) {
+ cleanupA.current = null;
+ cleanupFnA();
+ }
+ const cleanupFnB = cleanupB.current;
+ if (cleanupFnB) {
+ cleanupB.current = null;
+ cleanupFnB();
+ }
+ } else {
+ if (refA) {
+ cleanupA.current = applyRef(refA, current);
+ }
+ if (refB) {
+ cleanupB.current = applyRef(refB, current);
+ }
+ }
+ },
+ [refA, refB]
+ );
+ }
+ function applyRef(refA, current) {
+ if (typeof refA === "function") {
+ const cleanup = refA(current);
+ if (typeof cleanup === "function") {
+ return cleanup;
+ } else {
+ return () => refA(null);
+ }
+ } else {
+ refA.current = current;
+ return () => {
+ refA.current = null;
+ };
+ }
+ }
+ if (
+ (typeof exports.default === "function" ||
+ (typeof exports.default === "object" && exports.default !== null)) &&
+ typeof exports.default.__esModule === "undefined"
+ ) {
+ Object.defineProperty(exports.default, "__esModule", {
+ value: true,
+ });
+ Object.assign(exports.default, exports);
+ module.exports = exports.default;
+ } //# sourceMappingURL=use-merged-ref.js.map
+
+ /***/
+ },
+
+ /***/ 7046: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(8113);
+
+ /***/
+ },
+
+ /***/ 8113: /***/ (module, exports, __webpack_require__) => {
"use strict";
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
@@ -45,17 +258,17 @@
const _react = /*#__PURE__*/ _interop_require_wildcard._(
__webpack_require__(6466)
);
- const _resolvehref = __webpack_require__(5475);
- const _islocalurl = __webpack_require__(6475);
- const _formaturl = __webpack_require__(9998);
- const _utils = __webpack_require__(3084);
- const _addlocale = __webpack_require__(3921);
- const _routercontextsharedruntime = __webpack_require__(7726);
- const _useintersection = __webpack_require__(4806);
- const _getdomainlocale = __webpack_require__(3219);
- const _addbasepath = __webpack_require__(5498);
- const _usemergedref = __webpack_require__(3255);
- const _erroronce = __webpack_require__(1685);
+ const _resolvehref = __webpack_require__(2399);
+ const _islocalurl = __webpack_require__(6687);
+ const _formaturl = __webpack_require__(4802);
+ const _utils = __webpack_require__(9208);
+ const _addlocale = __webpack_require__(9845);
+ const _routercontextsharedruntime = __webpack_require__(3466);
+ const _useintersection = __webpack_require__(4581);
+ const _getdomainlocale = __webpack_require__(8319);
+ const _addbasepath = __webpack_require__(4126);
+ const _usemergedref = __webpack_require__(6155);
+ const _erroronce = __webpack_require__(8305);
const prefetched = new Set();
function prefetch(router, href, as, options) {
if (false) {
@@ -434,140 +647,7 @@
/***/
},
- /***/ 1685: /***/ (__unused_webpack_module, exports) => {
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "errorOnce", {
- enumerable: true,
- get: function () {
- return errorOnce;
- },
- });
- let errorOnce = (_) => {};
- if (false) {
- } //# sourceMappingURL=error-once.js.map
-
- /***/
- },
-
- /***/ 3219: /***/ (module, exports, __webpack_require__) => {
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "getDomainLocale", {
- enumerable: true,
- get: function () {
- return getDomainLocale;
- },
- });
- const _normalizetrailingslash = __webpack_require__(1059);
- const basePath =
- /* unused pure expression or super */ null && (false || "");
- function getDomainLocale(path, locale, locales, domainLocales) {
- if (false) {
- } else {
- return false;
- }
- }
- if (
- (typeof exports.default === "function" ||
- (typeof exports.default === "object" && exports.default !== null)) &&
- typeof exports.default.__esModule === "undefined"
- ) {
- Object.defineProperty(exports.default, "__esModule", {
- value: true,
- });
- Object.assign(exports.default, exports);
- module.exports = exports.default;
- } //# sourceMappingURL=get-domain-locale.js.map
-
- /***/
- },
-
- /***/ 3255: /***/ (module, exports, __webpack_require__) => {
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "useMergedRef", {
- enumerable: true,
- get: function () {
- return useMergedRef;
- },
- });
- const _react = __webpack_require__(6466);
- function useMergedRef(refA, refB) {
- const cleanupA = (0, _react.useRef)(null);
- const cleanupB = (0, _react.useRef)(null);
- // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
- // (this happens often if the user doesn't pass a ref to Link/Form/Image)
- // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),
- // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
- // (because it hasn't been updated for React 19)
- // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
- // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
- return (0, _react.useCallback)(
- (current) => {
- if (current === null) {
- const cleanupFnA = cleanupA.current;
- if (cleanupFnA) {
- cleanupA.current = null;
- cleanupFnA();
- }
- const cleanupFnB = cleanupB.current;
- if (cleanupFnB) {
- cleanupB.current = null;
- cleanupFnB();
- }
- } else {
- if (refA) {
- cleanupA.current = applyRef(refA, current);
- }
- if (refB) {
- cleanupB.current = applyRef(refB, current);
- }
- }
- },
- [refA, refB]
- );
- }
- function applyRef(refA, current) {
- if (typeof refA === "function") {
- const cleanup = refA(current);
- if (typeof cleanup === "function") {
- return cleanup;
- } else {
- return () => refA(null);
- }
- } else {
- refA.current = current;
- return () => {
- refA.current = null;
- };
- }
- }
- if (
- (typeof exports.default === "function" ||
- (typeof exports.default === "object" && exports.default !== null)) &&
- typeof exports.default.__esModule === "undefined"
- ) {
- Object.defineProperty(exports.default, "__esModule", {
- value: true,
- });
- Object.assign(exports.default, exports);
- module.exports = exports.default;
- } //# sourceMappingURL=use-merged-ref.js.map
-
- /***/
- },
-
- /***/ 4610: /***/ (
+ /***/ 8272: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -582,7 +662,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(7002);
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(9056);
+ __webpack_require__(7046);
/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_link__WEBPACK_IMPORTED_MODULE_1__
@@ -613,115 +693,45 @@
/***/
},
- /***/ 4806: /***/ (module, exports, __webpack_require__) => {
+ /***/ 8305: /***/ (__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
- Object.defineProperty(exports, "useIntersection", {
+ Object.defineProperty(exports, "errorOnce", {
enumerable: true,
get: function () {
- return useIntersection;
+ return errorOnce;
},
});
- const _react = __webpack_require__(6466);
- const _requestidlecallback = __webpack_require__(805);
- const hasIntersectionObserver =
- typeof IntersectionObserver === "function";
- const observers = new Map();
- const idList = [];
- function createObserver(options) {
- const id = {
- root: options.root || null,
- margin: options.rootMargin || "",
- };
- const existing = idList.find(
- (obj) => obj.root === id.root && obj.margin === id.margin
- );
- let instance;
- if (existing) {
- instance = observers.get(existing);
- if (instance) {
- return instance;
- }
+ let errorOnce = (_) => {};
+ if (false) {
+ } //# sourceMappingURL=error-once.js.map
+
+ /***/
+ },
+
+ /***/ 8319: /***/ (module, exports, __webpack_require__) => {
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "getDomainLocale", {
+ enumerable: true,
+ get: function () {
+ return getDomainLocale;
+ },
+ });
+ const _normalizetrailingslash = __webpack_require__(6063);
+ const basePath =
+ /* unused pure expression or super */ null && (false || "");
+ function getDomainLocale(path, locale, locales, domainLocales) {
+ if (false) {
+ } else {
+ return false;
}
- const elements = new Map();
- const observer = new IntersectionObserver((entries) => {
- entries.forEach((entry) => {
- const callback = elements.get(entry.target);
- const isVisible =
- entry.isIntersecting || entry.intersectionRatio > 0;
- if (callback && isVisible) {
- callback(isVisible);
- }
- });
- }, options);
- instance = {
- id,
- observer,
- elements,
- };
- idList.push(id);
- observers.set(id, instance);
- return instance;
- }
- function observe(element, callback, options) {
- const { id, observer, elements } = createObserver(options);
- elements.set(element, callback);
- observer.observe(element);
- return function unobserve() {
- elements.delete(element);
- observer.unobserve(element);
- // Destroy observer when there's nothing left to watch:
- if (elements.size === 0) {
- observer.disconnect();
- observers.delete(id);
- const index = idList.findIndex(
- (obj) => obj.root === id.root && obj.margin === id.margin
- );
- if (index > -1) {
- idList.splice(index, 1);
- }
- }
- };
- }
- function useIntersection({ rootRef, rootMargin, disabled }) {
- const isDisabled = disabled || !hasIntersectionObserver;
- const [visible, setVisible] = (0, _react.useState)(false);
- const elementRef = (0, _react.useRef)(null);
- const setElement = (0, _react.useCallback)((element) => {
- elementRef.current = element;
- }, []);
- (0, _react.useEffect)(() => {
- if (hasIntersectionObserver) {
- if (isDisabled || visible) return;
- const element = elementRef.current;
- if (element && element.tagName) {
- const unobserve = observe(
- element,
- (isVisible) => isVisible && setVisible(isVisible),
- {
- root: rootRef?.current,
- rootMargin,
- }
- );
- return unobserve;
- }
- } else {
- if (!visible) {
- const idleCallback = (0,
- _requestidlecallback.requestIdleCallback)(() => setVisible(true));
- return () =>
- (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
- }
- }
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
- const resetVisible = (0, _react.useCallback)(() => {
- setVisible(false);
- }, []);
- return [setElement, visible, resetVisible];
}
if (
(typeof exports.default === "function" ||
@@ -733,17 +743,7 @@
});
Object.assign(exports.default, exports);
module.exports = exports.default;
- } //# sourceMappingURL=use-intersection.js.map
-
- /***/
- },
-
- /***/ 9056: /***/ (
- module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- module.exports = __webpack_require__(1557);
+ } //# sourceMappingURL=get-domain-locale.js.map
/***/
},
@@ -753,7 +753,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(1182)
+ __webpack_exec__(2156)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;Diff for script-HASH.js
@@ -1,13 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[1209],
{
- /***/ 15: /***/ (module, __unused_webpack_exports, __webpack_require__) => {
- module.exports = __webpack_require__(5258);
-
- /***/
- },
-
- /***/ 6853: /***/ (
+ /***/ 2895: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -22,7 +16,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(7002);
/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(15);
+ __webpack_require__(3489);
/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -55,7 +49,17 @@
/***/
},
- /***/ 9264: /***/ (
+ /***/ 3489: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(3102);
+
+ /***/
+ },
+
+ /***/ 9884: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -63,7 +67,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/script",
function () {
- return __webpack_require__(6853);
+ return __webpack_require__(2895);
},
]);
if (false) {
@@ -77,7 +81,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(9264)
+ __webpack_exec__(9884)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;Diff for withRouter-HASH.js
@@ -1,34 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[3263],
{
- /***/ 1593: /***/ (
- module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- module.exports = __webpack_require__(372);
-
- /***/
- },
-
- /***/ 4550: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/withRouter",
- function () {
- return __webpack_require__(8527);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
-
- /***/ 8527: /***/ (
+ /***/ 69: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -43,7 +16,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(7002);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(1593);
+ __webpack_require__(2027);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -61,13 +34,40 @@
/***/
},
+
+ /***/ 2027: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(1536);
+
+ /***/
+ },
+
+ /***/ 2268: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/withRouter",
+ function () {
+ return __webpack_require__(69);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(4550)
+ __webpack_exec__(2268)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;Diff for 4951-HASH.js
Diff too large to display
Diff for 8034-HASH.js
failed to diffDiff for 9565-HASH.js
Diff too large to display
Diff for main-HASH.js
Diff too large to display
Diff for main-app-HASH.js
@@ -1,64 +1,64 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[4977],
{
- /***/ 3251: /***/ (
+ /***/ 905: /***/ () => {
+ /* (ignored) */
+ /***/
+ },
+
+ /***/ 8367: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 5065, 23)
+ __webpack_require__.t.bind(__webpack_require__, 2467, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 8974, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8296, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 6506, 23)
+ __webpack_require__.t.bind(__webpack_require__, 488, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 1, 23)
+ __webpack_require__.t.bind(__webpack_require__, 6887, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 8239, 23)
+ __webpack_require__.t.bind(__webpack_require__, 1753, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 1187, 23)
+ __webpack_require__.t.bind(__webpack_require__, 3265, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 7790, 23)
+ __webpack_require__.t.bind(__webpack_require__, 1848, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 6543, 23)
+ __webpack_require__.t.bind(__webpack_require__, 565, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 5802, 23)
+ __webpack_require__.t.bind(__webpack_require__, 6732, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 2809, 23)
+ __webpack_require__.t.bind(__webpack_require__, 6439, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 5738, 23)
+ __webpack_require__.t.bind(__webpack_require__, 228, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5455)
+ __webpack_require__.bind(__webpack_require__, 3013)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 4731, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8253, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 3753, 23)
+ __webpack_require__.t.bind(__webpack_require__, 3772, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 2816, 23)
+ __webpack_require__.t.bind(__webpack_require__, 5846, 23)
);
/***/
},
-
- /***/ 3643: /***/ () => {
- /* (ignored) */
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
@@ -66,8 +66,8 @@
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(
0,
- [119, 8034],
- () => (__webpack_exec__(5111), __webpack_exec__(3251))
+ [4246, 2914],
+ () => (__webpack_exec__(1429), __webpack_exec__(8367))
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
timneutkens
approved these changes
Dec 5, 2025
Member
|
Do we need to backport this? |
|
@bgw yes please, right now we can't update next.js to get the vulnerability fix because of this issue. |
benjaminshafii
added a commit
to different-ai/zero-finance
that referenced
this pull request
Dec 10, 2025
…dling issue Next.js 16.0.8 Turbopack has a bundling regression where Client Component SSR traverses into test directories of pino/thread-stream dependencies, causing build failures when test files try to require tap/tape. Fix: - Use --webpack flag for production builds (Turbopack is fine for dev) - Add pino, pino-pretty, pino-roll, thread-stream to serverExternalPackages - Add these packages as devDependencies so they can be resolved This keeps Next.js 16.0.8 for CVE-2025-66478 fix and React 19.2.1 for CVE-2025-55182 fix. See: vercel/next.js#86884 (fix merged to canary)
benjaminshafii
added a commit
to different-ai/zero-finance
that referenced
this pull request
Dec 10, 2025
* fix: clean up console logs and fix hydration mismatch - Remove verbose debug logs (userProfile, public client, chain objects) - Remove 0xHypr user context warnings - Remove database connection and API route context logs - Remove workspace safe fetching logs - Fix BlueprintGrid hydration mismatch with mounted state - Update images.domains to images.remotePatterns in Next.js configs - Add turbopack.root to weloveyourstartup config - Update baseline-browser-mapping package * fix: add Optimism public client support to earn router Fixes 'Unsupported chain id 10 for public client' error when querying vaults on Optimism chain. * feat: add Optimism chain support for vaults - Add Optimism chain config with USDC address and RPC URLs - Add Gauntlet USDC Prime vault on Optimism - Add Optimism to cross-chain vault list - Add Optimism SpokePool for Across bridge - Add Optimism support to sponsor-tx and providers - Add Optimism to multi-chain safe status * fix: patch CVE-2025-66478 (Next.js) and CVE-2025-55182 (React) - Update Next.js from ^16.0.0 to ^16.0.8 - Update React/React-DOM from ^19.0.0 to ^19.2.1 - Add new-vault-implementation agent docs - Add Optimism logo mapping to checking-actions-card These updates fix critical CVSS 10.0 RCE vulnerabilities in React Server Components affecting App Router applications. * feat: show chain logo badges in technical mode for vault rows - Add ChainBadge component showing chain logo + name in technical mode - Update vault row explorer links to use correct chain explorer - Update footer to dynamically show active chains (BASE, OPTIMISM, etc) - Chain badges only appear in technical/blueprint mode * fix: update chain logos - Gnosis long format, Optimism square format - Download Gnosis long logo with name included - Use Optimism square logo (needs chain name text) - Update ChainBadge to handle both wide (hasName) and square formats - Wide logos: show logo only (name included in image) - Square logos: show icon + chain name text * fix: use proper chain names instead of 'Chain 10' - Add Optimism long logo with red background (#FF0420) - Update vault-row to use long Optimism logo (hasName: true) - Fix deposit-earn-card to use getChainDisplayName() instead of hardcoded chain name logic that showed 'Chain 10' for Optimism - Now correctly shows 'Optimism Account Setup Required' etc. * fix: enable Optimism bridging support and update vault implementation docs - Add SUPPORTED_CHAINS.OPTIMISM to ACROSS_SUPPORTED_CHAINS array - This enables cross-chain bridging from Base to Optimism via Across - Update new-vault-implementation.md with missing step 1.6: 'Add Chain to Bridging Support Arrays' - Fix 'Chain 10 not supported' error message Without this fix, users saw 'Cross-chain deposits to Chain 10 not supported' instead of the bridging UI. * fix: Safe deployment uses wrong chain (Arbitrum instead of Optimism) Root cause: The chain selection logic in deposit-earn-card.tsx only handled Gnosis and defaulted everything else to Arbitrum. Fixes: - Import optimism from viem/chains - Add SUPPORTED_CHAINS.OPTIMISM case to getChainForId() switch - Add SUPPORTED_CHAINS.OPTIMISM case to getTargetChain() switch - Add corresponding RPC URL cases Also updated new-vault-implementation.md with new step 1.7: 'Add Chain to Safe Deployment Logic' - documents this critical requirement that was missing from the checklist. Before: Deploying Safe on Optimism. Chain object: {id: 42161, name: 'Arbitrum One'} After: Deploying Safe on Optimism. Chain object: {id: 10, name: 'OP Mainnet'} * fix: add Optimism to Across Protocol client configuration Root cause: The Across SDK client was only initialized with Base and Arbitrum chains, causing 'Unsupported token address on given destination chain' error when trying to bridge to Optimism. Fixes: - Import optimism and mainnet from viem/chains - Add optimism and mainnet to createAcrossClient chains array - Replace hardcoded chain ID ternary with proper switch statement - Add getViemChainId() helper for extensible chain mapping Also updated new-vault-implementation.md with new step 1.5b: 'Add Chain to Across Client' - documents this critical SDK configuration requirement. * docs: complete new-vault-implementation checklist with all discovered steps Added missing steps discovered during Optimism integration: - 3.2: Update CHAIN_LOGOS in BOTH vault-row.tsx and checking-actions-card.tsx - 3.3: Add public client to earn-router.ts Updated Common Pitfalls with 5 new items: - Across client not configured - Safe deployment uses wrong chain - 'Chain X' instead of chain name - Missing public client in earn-router - Logo not showing (two files) Updated Files Modified Summary table (now 14 files) Updated Optimism example (now 14 files changed) Updated Verification Checklist (now 11 items) * fix: Optimism support, bridge button validation, and misc fixes - Add Optimism to MultiChainRPCManager for balance queries - Fix bridge button disabled state when Base USDC balance is 0 - Add sonic-boom dependency for pino compatibility - Add serverExternalPackages for pino/sonic-boom - Add db connection debug logging - Fix cross-chain source balance query fallback - Landing page and signin updates * fix: getPrimarySafeAddress must filter by Base chainId (8453) The query was returning the first primary safe found, which could be for Optimism/Gnosis/Arbitrum instead of Base. This caused USDC balance to show 0 in the transfer UI since it was querying the wrong address. * docs: update design language with cleaner technical mode patterns - Replace 'Blueprint Grid' naming with cleaner 'Technical Mode' terminology - Add comprehensive component patterns extracted from deposit-earn-card.tsx - Document container, form, and status state styling patterns - Add typography reference table for technical mode - Document NAMESPACE::IDENTIFIER naming conventions - Simplify BimodalCard implementation example - Remove heavy grid overlay in favor of subtle accent borders * fix: use webpack for builds to avoid Turbopack pino/thread-stream bundling issue Next.js 16.0.8 Turbopack has a bundling regression where Client Component SSR traverses into test directories of pino/thread-stream dependencies, causing build failures when test files try to require tap/tape. Fix: - Use --webpack flag for production builds (Turbopack is fine for dev) - Add pino, pino-pretty, pino-roll, thread-stream to serverExternalPackages - Add these packages as devDependencies so they can be resolved This keeps Next.js 16.0.8 for CVE-2025-66478 fix and React 19.2.1 for CVE-2025-55182 fix. See: vercel/next.js#86884 (fix merged to canary)
shige
added a commit
to giselles-ai/giselle
that referenced
this pull request
Dec 11, 2025
- Add thread-stream to serverExternalPackages (ref: vercel/next.js#86884) - Add cron ingest route to outputFileTracingIncludes for pdfium WASM - Set outputFileTracingRoot to monorepo root for proper file tracing These changes address module resolution issues with Turbopack on Vercel.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
created-by: Turbopack team
PRs by the Turbopack team.
Documentation
Related to Next.js' official documentation.
type: next
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

Closes #86099