-
Notifications
You must be signed in to change notification settings - Fork 29.5k
Draft: fix: Add runtime
field to MiddlewareConfig
type
#84587
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
base: canary
Are you sure you want to change the base?
Conversation
Failing test suitesCommit: 3e9f195 | About building and testing Next.js
Expand output● app-dir static/dynamic handling › should respond correctly for dynamic route with dynamicParams false in layout
● app-dir static/dynamic handling › should respond correctly for dynamic route with dynamicParams false in layout
● app-dir static/dynamic handling › should respond correctly for partially dynamic route with dynamicParams false in layout
● app-dir static/dynamic handling › should respond correctly for partially dynamic route with dynamicParams false in layout
● app-dir static/dynamic handling › should use auto no cache when no fetch config
● app-dir static/dynamic handling › should use auto no cache when no fetch config
● app-dir static/dynamic handling › should correctly handle "default" cache statuses
● app-dir static/dynamic handling › should correctly handle "default" cache statuses
● app-dir static/dynamic handling › should still cache even though the W3C trace context headers
● app-dir static/dynamic handling › should still cache even though the W3C trace context headers
● app-dir static/dynamic handling › should warn for too many cache tags
● app-dir static/dynamic handling › should warn for too many cache tags
● app-dir static/dynamic handling › should propagate unstable_cache tags correctly
● app-dir static/dynamic handling › should propagate unstable_cache tags correctly
● app-dir static/dynamic handling › should infer a fetchCache of force-no-store when force-dynamic is used
● app-dir static/dynamic handling › should infer a fetchCache of force-no-store when force-dynamic is used
● app-dir static/dynamic handling › should infer a fetch cache of "force-cache" when force-dynamic is used on a fetch with revalidate
● app-dir static/dynamic handling › should infer a fetch cache of "force-cache" when force-dynamic is used on a fetch with revalidate
● app-dir static/dynamic handling › force-dynamic should supercede a "default" cache value
● app-dir static/dynamic handling › force-dynamic should supercede a "default" cache value
● app-dir static/dynamic handling › fetchCache config should supercede dynamic config when force-dynamic is used
● app-dir static/dynamic handling › fetchCache config should supercede dynamic config when force-dynamic is used
● app-dir static/dynamic handling › fetch
● app-dir static/dynamic handling › fetch
● app-dir static/dynamic handling › should correctly include headers instance in cache key
● app-dir static/dynamic handling › should correctly include headers instance in cache key
● app-dir static/dynamic handling › should correctly de-dupe fetch without next cache /react-fetch-deduping-node
● app-dir static/dynamic handling › should correctly de-dupe fetch without next cache /react-fetch-deduping-node
● app-dir static/dynamic handling › should correctly de-dupe fetch without next cache /react-fetch-deduping-edge
● app-dir static/dynamic handling › should correctly de-dupe fetch without next cache /react-fetch-deduping-edge
● app-dir static/dynamic handling › unstable-cache should work in pages/unstable-cache-node
● app-dir static/dynamic handling › unstable-cache should work in pages/unstable-cache-node
● app-dir static/dynamic handling › unstable-cache should work in pages/unstable-cache-edge
● app-dir static/dynamic handling › unstable-cache should work in pages/unstable-cache-edge
● app-dir static/dynamic handling › unstable-cache should work in pages/api/unstable-cache-node
● app-dir static/dynamic handling › unstable-cache should work in pages/api/unstable-cache-node
● app-dir static/dynamic handling › unstable-cache should work in pages/api/unstable-cache-edge
● app-dir static/dynamic handling › unstable-cache should work in pages/api/unstable-cache-edge
● app-dir static/dynamic handling › should not have cache tags header for non-minimal mode
● app-dir static/dynamic handling › should not have cache tags header for non-minimal mode
● app-dir static/dynamic handling › should correctly skip caching POST fetch for POST handler
● app-dir static/dynamic handling › should correctly skip caching POST fetch for POST handler
● app-dir static/dynamic handling › should correctly handle fetchCache = "force-no-store"
● app-dir static/dynamic handling › should correctly handle fetchCache = "force-no-store"
● app-dir static/dynamic handling › should not cache non-ok statusCode
● app-dir static/dynamic handling › should not cache non-ok statusCode
● app-dir static/dynamic handling › should not encode dynamic parameters as search parameters in RSC data
● app-dir static/dynamic handling › should not encode dynamic parameters as search parameters in RSC data
● app-dir static/dynamic handling › should output HTML/RSC files for static paths
● app-dir static/dynamic handling › should output HTML/RSC files for static paths
● app-dir static/dynamic handling › should have correct prerender-manifest entries
● app-dir static/dynamic handling › should have correct prerender-manifest entries
● app-dir static/dynamic handling › should output debug info for static bailouts
● app-dir static/dynamic handling › should output debug info for static bailouts
● app-dir static/dynamic handling › should log fetch metrics to the diagnostics directory
● app-dir static/dynamic handling › should log fetch metrics to the diagnostics directory
● app-dir static/dynamic handling › should have correct cache tags for prerendered path
● app-dir static/dynamic handling › should have correct cache tags for prerendered path
● app-dir static/dynamic handling › should stream properly for /stale-cache-serving/app-page
● app-dir static/dynamic handling › should stream properly for /stale-cache-serving/app-page
● app-dir static/dynamic handling › should stream properly for /stale-cache-serving/route-handler
● app-dir static/dynamic handling › should stream properly for /stale-cache-serving/route-handler
● app-dir static/dynamic handling › should stream properly for /stale-cache-serving-edge/app-page
● app-dir static/dynamic handling › should stream properly for /stale-cache-serving-edge/app-page
● app-dir static/dynamic handling › should stream properly for /stale-cache-serving-edge/route-handler
● app-dir static/dynamic handling › should stream properly for /stale-cache-serving-edge/route-handler
● app-dir static/dynamic handling › should correctly handle statusCode with notFound + ISR
● app-dir static/dynamic handling › should correctly handle statusCode with notFound + ISR
● app-dir static/dynamic handling › should cache correctly for fetchCache = default-cache
● app-dir static/dynamic handling › should cache correctly for fetchCache = default-cache
● app-dir static/dynamic handling › should cache correctly when accessing search params opts into dynamic rendering
● app-dir static/dynamic handling › should cache correctly when accessing search params opts into dynamic rendering
● app-dir static/dynamic handling › should cache correctly for fetchCache = force-cache
● app-dir static/dynamic handling › should cache correctly for fetchCache = force-cache
● app-dir static/dynamic handling › should cache correctly for cache: "force-cache" and "revalidate"
● app-dir static/dynamic handling › should cache correctly for cache: "force-cache" and "revalidate"
● app-dir static/dynamic handling › should cache correctly for cache: no-store
● app-dir static/dynamic handling › should cache correctly for cache: no-store
● app-dir static/dynamic handling › should not error with dynamic server usage with force-static
● app-dir static/dynamic handling › should not error with dynamic server usage with force-static
● app-dir static/dynamic handling › should produce response with url from fetch
● app-dir static/dynamic handling › should produce response with url from fetch
● app-dir static/dynamic handling › should properly error when dynamic = "error" page uses dynamic
● app-dir static/dynamic handling › should properly error when dynamic = "error" page uses dynamic
● app-dir static/dynamic handling › should skip cache in draft mode
● app-dir static/dynamic handling › should skip cache in draft mode
● app-dir static/dynamic handling › should handle partial-gen-params with default dynamicParams correctly
● app-dir static/dynamic handling › should handle partial-gen-params with default dynamicParams correctly
● app-dir static/dynamic handling › should handle partial-gen-params with layout dynamicParams = false correctly
● app-dir static/dynamic handling › should handle partial-gen-params with layout dynamicParams = false correctly
● app-dir static/dynamic handling › should handle partial-gen-params with page dynamicParams = false correctly
● app-dir static/dynamic handling › should handle partial-gen-params with page dynamicParams = false correctly
● app-dir static/dynamic handling › should honor fetch cache correctly
● app-dir static/dynamic handling › should honor fetch cache correctly
● app-dir static/dynamic handling › should honor fetch cache correctly (edge)
● app-dir static/dynamic handling › should honor fetch cache correctly (edge)
● app-dir static/dynamic handling › should cache correctly with authorization header and revalidate
● app-dir static/dynamic handling › should cache correctly with authorization header and revalidate
● app-dir static/dynamic handling › should skip fetch cache when an authorization header is present after dynamic usage
● app-dir static/dynamic handling › should skip fetch cache when an authorization header is present after dynamic usage
● app-dir static/dynamic handling › should skip fetch cache when accessing request properties
● app-dir static/dynamic handling › should skip fetch cache when accessing request properties
● app-dir static/dynamic handling › should not cache correctly with POST method request init
● app-dir static/dynamic handling › should not cache correctly with POST method request init
● app-dir static/dynamic handling › should cache correctly with post method and revalidate
● app-dir static/dynamic handling › should cache correctly with post method and revalidate
● app-dir static/dynamic handling › should cache correctly with post method and revalidate edge
● app-dir static/dynamic handling › should cache correctly with post method and revalidate edge
● app-dir static/dynamic handling › should cache correctly with POST method and revalidate
● app-dir static/dynamic handling › should cache correctly with POST method and revalidate
● app-dir static/dynamic handling › should cache correctly with cookie header and revalidate
● app-dir static/dynamic handling › should cache correctly with cookie header and revalidate
● app-dir static/dynamic handling › should cache correctly with utf8 encoding
● app-dir static/dynamic handling › should cache correctly with utf8 encoding
● app-dir static/dynamic handling › should cache correctly with utf8 encoding edge
● app-dir static/dynamic handling › should cache correctly with utf8 encoding edge
● app-dir static/dynamic handling › should cache correctly handle JSON body
● app-dir static/dynamic handling › should cache correctly handle JSON body
● app-dir static/dynamic handling › should not throw Dynamic Server Usage error when using generateStaticParams with draftMode
● app-dir static/dynamic handling › should not throw Dynamic Server Usage error when using generateStaticParams with draftMode
● app-dir static/dynamic handling › should force SSR correctly for headers usage
● app-dir static/dynamic handling › should force SSR correctly for headers usage
● app-dir static/dynamic handling › should allow dynamic routes to access cookies
● app-dir static/dynamic handling › should allow dynamic routes to access cookies
● app-dir static/dynamic handling › should not error with generateStaticParams and dynamic data
● app-dir static/dynamic handling › should not error with generateStaticParams and dynamic data
● app-dir static/dynamic handling › should not error with force-dynamic and catch-all routes
● app-dir static/dynamic handling › should not error with force-dynamic and catch-all routes
● app-dir static/dynamic handling › should not error with generateStaticParams and authed data on revalidate
● app-dir static/dynamic handling › should not error with generateStaticParams and authed data on revalidate
● app-dir static/dynamic handling › should work with forced dynamic path
● app-dir static/dynamic handling › should work with forced dynamic path
● app-dir static/dynamic handling › should work with dynamic path no generateStaticParams
● app-dir static/dynamic handling › should work with dynamic path no generateStaticParams
● app-dir static/dynamic handling › should handle dynamicParams: true correctly
● app-dir static/dynamic handling › should handle dynamicParams: true correctly
● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch cache option
● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch cache option
● app-dir static/dynamic handling › should render not found pages correctly and fallback to the default one
● app-dir static/dynamic handling › should render not found pages correctly and fallback to the default one
● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch revalidate option
● app-dir static/dynamic handling › should ssr dynamically when detected automatically with fetch revalidate option
● app-dir static/dynamic handling › should ssr dynamically when forced via config
● app-dir static/dynamic handling › should ssr dynamically when forced via config
● app-dir static/dynamic handling › useSearchParams › client › should bailout to client rendering - with suspense boundary
● app-dir static/dynamic handling › useSearchParams › client › should bailout to client rendering - with suspense boundary
● app-dir static/dynamic handling › useSearchParams › client › should have empty search params on force-static
● app-dir static/dynamic handling › useSearchParams › client › should have empty search params on force-static
● app-dir static/dynamic handling › useSearchParams › client › should have values from canonical url on rewrite
● app-dir static/dynamic handling › useSearchParams › client › should have values from canonical url on rewrite
● app-dir static/dynamic handling › useSearchParams › server response › should bailout to client rendering - with suspense boundary
● app-dir static/dynamic handling › useSearchParams › server response › should bailout to client rendering - with suspense boundary
● app-dir static/dynamic handling › useSearchParams › server response › should have empty search params on force-static
● app-dir static/dynamic handling › useSearchParams › server response › should have empty search params on force-static
● app-dir static/dynamic handling › usePathname › should have the correct values
● app-dir static/dynamic handling › usePathname › should have the correct values
● app-dir static/dynamic handling › usePathname › should have values from canonical url on rewrite
● app-dir static/dynamic handling › usePathname › should have values from canonical url on rewrite
● app-dir static/dynamic handling › unstable_noStore › should opt-out of static optimization
● app-dir static/dynamic handling › unstable_noStore › should opt-out of static optimization
● app-dir static/dynamic handling › unstable_noStore › should not opt-out of static optimization when used in next/cache
● app-dir static/dynamic handling › unstable_noStore › should not opt-out of static optimization when used in next/cache
● app-dir static/dynamic handling › unstable_cache › should retrieve the same value on second request
● app-dir static/dynamic handling › unstable_cache › should retrieve the same value on second request
● app-dir static/dynamic handling › unstable_cache › should bypass cache in draft mode
● app-dir static/dynamic handling › unstable_cache › should bypass cache in draft mode
● app-dir static/dynamic handling › unstable_cache › should not cache new result in draft mode
● app-dir static/dynamic handling › unstable_cache › should not cache new result in draft mode
● app-dir static/dynamic handling › unstable_cache › should be able to read the draft mode status
● app-dir static/dynamic handling › unstable_cache › should be able to read the draft mode status
● app-dir static/dynamic handling › unstable_cache › should not error when retrieving the value undefined
● app-dir static/dynamic handling › unstable_cache › should not error when retrieving the value undefined
● app-dir static/dynamic handling › unstable_cache › should not error when calling a fetch no-store
● app-dir static/dynamic handling › unstable_cache › should not error when calling a fetch no-store
● app-dir static/dynamic handling › unstable_cache › should not error when calling a fetch no-cache
● app-dir static/dynamic handling › unstable_cache › should not error when calling a fetch no-cache
● app-dir static/dynamic handling › should keep querystring on static page
● app-dir static/dynamic handling › should keep querystring on static page
● app-dir static/dynamic handling › should have logs from cache-handler
● app-dir static/dynamic handling › should have logs from cache-handler
● app-dir static/dynamic handling › Incremental cache limits › should cache large data when using custom cache handler and force-cache mode
● app-dir static/dynamic handling › Incremental cache limits › should cache large data when using custom cache handler and force-cache mode
● app-dir static/dynamic handling › should build dynamic param with edge runtime correctly
● app-dir static/dynamic handling › should build dynamic param with edge runtime correctly
Expand output● streaming SSR with custom next configs › should match more specific route along with dynamic routes
● streaming SSR with custom next configs › should render styled-jsx styles in streaming
● streaming SSR with custom next configs › should redirect paths without trailing-slash and render when slash is appended
● streaming SSR with custom next configs › should render next/router correctly in edge runtime
● streaming SSR with custom next configs › should render multi-byte characters correctly in streaming
Expand output● cache-components-dev-warmup › logs with Prerender or Server environment depending based on whether the timing of when the log runs relative to this environment boundary
Expand output● Image Loader Config with Edge Runtime › development mode › should add "src" to img1 based on the loader config
● Image Loader Config with Edge Runtime › development mode › should add "srcset" to img1 based on the loader config
● Image Loader Config with Edge Runtime › development mode › should add "src" to img2 based on the loader prop
● Image Loader Config with Edge Runtime › development mode › should add "srcset" to img2 based on the loader prop
● Image Loader Config with Edge Runtime › production mode › should add "src" to img1 based on the loader config
● Image Loader Config with Edge Runtime › production mode › should add "srcset" to img1 based on the loader config
● Image Loader Config with Edge Runtime › production mode › should add "src" to img2 based on the loader prop
● Image Loader Config with Edge Runtime › production mode › should add "srcset" to img2 based on the loader prop
Expand output● instrumentation-hook-rsc › instrumentation › should run the instrumentation hook
● instrumentation-hook-rsc › instrumentation › should not overlap with a instrumentation page
● instrumentation-hook-rsc › instrumentation › should run the edge instrumentation compiled version with the edge runtime
Expand output● config telemetry › production mode › detects rewrites, headers, and redirects for next build
● config telemetry › production mode › emits telemetry for lint during build
● config telemetry › production mode › emits telemery for usage of image, script & dynamic
● config telemetry › production mode › emits telemetry for usage of swc
● config telemetry › production mode › emits telemetry for usage of
● config telemetry › production mode › emits telemetry for usage of
● config telemetry › production mode › emits telemetry for usage of
● config telemetry › production mode › emits telemetry for usage of middleware
● config telemetry › production mode › emits telemetry for usage of next/legacy/image
● config telemetry › production mode › emits telemetry for usage of @vercel/og
● config telemetry › production mode › emits telemetry for transpilePackages
● config telemetry › production mode › emits telemetry for middleware related options
● config telemetry › production mode › emits telemetry for useCache directive
● config telemetry › production mode › emits telemetry for persistent cache in build mode
Expand output● edge-render-getserversideprops › should not output trace files for edge routes
● edge-render-getserversideprops › should have correct query for pages/api
● edge-render-getserversideprops › should have correct query for pages/api dynamic
● edge-render-getserversideprops › should have correct query/params on index
● edge-render-getserversideprops › should have correct query/params on /[id]
● edge-render-getserversideprops › should have correct query/params on rewrite
● edge-render-getserversideprops › should have correct query/params on dynamic rewrite
● edge-render-getserversideprops › should respond to _next/data for index correctly
● edge-render-getserversideprops › should respond to _next/data for [id] correctly
● edge-render-getserversideprops › should have data routes in routes-manifest
Expand output● edge render - custom _document with edge runtime › should render page properly
Expand output● production mode › Concurrent mode in the experimental-edge runtime prod › flushes styled-jsx styles as the page renders
● production mode › Concurrent mode in the experimental-edge runtime prod › › should not have the initial route announced
● production mode › Concurrent mode in the experimental-edge runtime prod › should not have invalid config warning
Expand output● Switchable runtime › Switchable runtime (prod) › should build /static as a static page with the nodejs runtime
● Switchable runtime › Switchable runtime (prod) › should build /node as a static page with the nodejs runtime
● Switchable runtime › Switchable runtime (prod) › should build /node-ssr as a dynamic page with the nodejs runtime
● Switchable runtime › Switchable runtime (prod) › should build /node-ssg as a static page with the nodejs runtime
● Switchable runtime › Switchable runtime (prod) › should build /node-rsc as a static page with the nodejs runtime
● Switchable runtime › Switchable runtime (prod) › should build /app-valid-runtime as a dynamic page with the edge runtime
● Switchable runtime › Switchable runtime (prod) › should build /node-rsc-ssr as a dynamic page with the nodejs runtime
● Switchable runtime › Switchable runtime (prod) › should build /node-rsc-ssg as a static page with the nodejs runtime
● Switchable runtime › Switchable runtime (prod) › should build /node-rsc-isr as an isr page with the nodejs runtime
● Switchable runtime › Switchable runtime (prod) › should build /edge as a dynamic page with the edge runtime
● Switchable runtime › Switchable runtime (prod) › should build /edge-rsc as a dynamic page with the edge runtime
● Switchable runtime › Switchable runtime (prod) › should build /api/hello and /api/edge as an api route with edge runtime
● Switchable runtime › Switchable runtime (prod) › should display correct tree view with page types in terminal
● Switchable runtime › Switchable runtime (prod) › should prefetch data for static pages
● Switchable runtime › Switchable runtime (prod) › should support client side navigation to ssr rsc pages
● Switchable runtime › Switchable runtime (prod) › should support client side navigation to ssg rsc pages
● Switchable runtime › Switchable runtime (prod) › should support client side navigation to static rsc pages
● Switchable runtime › Switchable runtime (prod) › should support etag header in the web server
● Test suite failed to run
Expand output● Telemetry CLI › production mode › detects tests correctly for
● Telemetry CLI › production mode › detect static 404 correctly for
● Telemetry CLI › production mode › detect page counts correctly for
Expand output● react version › should use default react condition for pages router pages
● react version › should use default react condition for pages router apis
Expand output● Configurable runtime for src/pages and API routes › In development mode › warns about API route using experimental-edge runtime
● Configurable runtime for pages and API routes › In development mode › warns about API route using experimental-edge runtime
Expand output● Instrumentation Hook › with-edge-page › with-edge-page should run the instrumentation hook
● Instrumentation Hook › with-async-edge-page › with-async-edge-page should run the instrumentation hook
Expand output● segment cache (staleness) › expires runtime prefetches when their stale time has elapsed
|
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
buildDuration | 24.3s | 21.3s | N/A |
buildDurationCached | 20.8s | 16.8s | N/A |
nodeModulesSize | 448 MB | 448 MB | |
nextStartRea..uration (ms) | 701ms | 643ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
1916.HASH.js gzip | 169 B | 169 B | ✓ |
4498-HASH.js gzip | 45.9 kB | 45.7 kB | N/A |
9225-HASH.js gzip | 5.19 kB | 5.18 kB | N/A |
c57d0559-HASH.js gzip | 55 kB | 55 kB | N/A |
framework-HASH.js gzip | 59.8 kB | 59.8 kB | ✓ |
main-app-HASH.js gzip | 257 B | 258 B | N/A |
main-HASH.js gzip | 36.4 kB | 36.3 kB | N/A |
webpack-HASH.js gzip | 1.69 kB | 1.69 kB | N/A |
Overall change | 60 kB | 60 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | 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 bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 182 B | 182 B | ✓ |
css-HASH.js gzip | 334 B | 334 B | ✓ |
dynamic-HASH.js gzip | 1.8 kB | 1.79 kB | N/A |
edge-ssr-HASH.js gzip | 256 B | 255 B | N/A |
head-HASH.js gzip | 350 B | 352 B | N/A |
hooks-HASH.js gzip | 384 B | 381 B | N/A |
image-HASH.js gzip | 4.67 kB | 4.66 kB | N/A |
index-HASH.js gzip | 259 B | 260 B | N/A |
link-HASH.js gzip | 2.28 kB | 2.28 kB | N/A |
routerDirect..HASH.js gzip | 318 B | 317 B | N/A |
script-HASH.js gzip | 386 B | 386 B | ✓ |
withRouter-HASH.js gzip | 315 B | 315 B | ✓ |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 1.52 kB | 1.52 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
_buildManifest.js gzip | 716 B | 719 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
index.html gzip | 524 B | 522 B | N/A |
link.html gzip | 537 B | 538 B | N/A |
withRouter.html gzip | 519 B | 519 B | ✓ |
Overall change | 519 B | 519 B | ✓ |
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
edge-ssr.js gzip | 129 kB | 129 kB | N/A |
page.js gzip | 242 kB | 242 kB | |
Overall change | 242 kB | 242 kB |
Middleware size
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 635 B | 640 B | N/A |
middleware-r..fest.js gzip | 156 B | 157 B | N/A |
middleware.js gzip | 33 kB | 33.1 kB | N/A |
edge-runtime..pack.js gzip | 846 B | 846 B | ✓ |
Overall change | 846 B | 846 B | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 288 kB | 288 kB | N/A |
app-page-exp..prod.js gzip | 158 kB | 158 kB | ✓ |
app-page-tur...dev.js gzip | 288 kB | 288 kB | N/A |
app-page-tur..prod.js gzip | 158 kB | 158 kB | ✓ |
app-page-tur...dev.js gzip | 281 kB | 281 kB | ✓ |
app-page-tur..prod.js gzip | 153 kB | 153 kB | ✓ |
app-page.run...dev.js gzip | 282 kB | 282 kB | N/A |
app-page.run..prod.js gzip | 153 kB | 153 kB | ✓ |
app-route-ex...dev.js gzip | 70.1 kB | 70.1 kB | ✓ |
app-route-ex..prod.js gzip | 49.3 kB | 49.3 kB | ✓ |
app-route-tu...dev.js gzip | 70.1 kB | 70.1 kB | ✓ |
app-route-tu..prod.js gzip | 49.3 kB | 49.3 kB | ✓ |
app-route-tu...dev.js gzip | 69.5 kB | 69.5 kB | ✓ |
app-route-tu..prod.js gzip | 49 kB | 49 kB | ✓ |
app-route.ru...dev.js gzip | 69.5 kB | 69.5 kB | ✓ |
app-route.ru..prod.js gzip | 48.9 kB | 48.9 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 | 43.1 kB | 43.1 kB | ✓ |
pages-api-tu..prod.js gzip | 33.1 kB | 33.1 kB | ✓ |
pages-api.ru...dev.js gzip | 43 kB | 43 kB | ✓ |
pages-api.ru..prod.js gzip | 33.1 kB | 33.1 kB | ✓ |
pages-turbo....dev.js gzip | 52.8 kB | 52.8 kB | ✓ |
pages-turbo...prod.js gzip | 40.2 kB | 40.2 kB | ✓ |
pages.runtim...dev.js gzip | 52.8 kB | 52.8 kB | ✓ |
pages.runtim..prod.js gzip | 40.2 kB | 40.2 kB | ✓ |
server.runti..prod.js gzip | 78.5 kB | 78.5 kB | ✓ |
Overall change | 1.8 MB | 1.8 MB | ✓ |
build cache
vercel/next.js canary | vercel/next.js bgw/middleware-runtime-typedef | Change | |
---|---|---|---|
0.pack gzip | 3.07 MB | 3.07 MB | N/A |
index.pack gzip | 92.3 kB | 92 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 css-HASH.js
@@ -1,7 +1,31 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[9813],
{
- /***/ 3593: /***/ (
+ /***/ 5832: /***/ (module) => {
+ // extracted by mini-css-extract-plugin
+ module.exports = { helloWorld: "css_helloWorld__aUdUq" };
+
+ /***/
+ },
+
+ /***/ 6471: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/css",
+ function () {
+ return __webpack_require__(7839);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
+
+ /***/ 7839: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -15,7 +39,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(1503);
/* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(7634);
+ __webpack_require__(5832);
/* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
_css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -34,37 +58,13 @@
/***/
},
-
- /***/ 4569: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/css",
- function () {
- return __webpack_require__(3593);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
-
- /***/ 7634: /***/ (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__(4569)
+ __webpack_exec__(6471)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,24 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[2291],
{
- /***/ 1033: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/dynamic",
- function () {
- return __webpack_require__(2283);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
-
- /***/ 2283: /***/ (
+ /***/ 133: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -33,7 +16,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(1503);
/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(4939);
+ __webpack_require__(7514);
/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -42,12 +25,12 @@
const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
() =>
__webpack_require__
- .e(/* import() */ 1916)
- .then(__webpack_require__.bind(__webpack_require__, 1916))
+ .e(/* import() */ 3862)
+ .then(__webpack_require__.bind(__webpack_require__, 3862))
.then((mod) => mod.Hello),
{
loadableGenerated: {
- webpack: () => [/*require.resolve*/ 1916],
+ webpack: () => [/*require.resolve*/ 3862],
},
}
);
@@ -74,17 +57,24 @@
/***/
},
- /***/ 4939: /***/ (
- module,
+ /***/ 431: /***/ (
+ __unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(5121);
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/dynamic",
+ function () {
+ return __webpack_require__(133);
+ },
+ ]);
+ if (false) {
+ }
/***/
},
- /***/ 5121: /***/ (module, exports, __webpack_require__) => {
+ /***/ 1709: /***/ (module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -117,7 +107,7 @@
__webpack_require__(2223)
);
const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(7622)
+ __webpack_require__(2522)
);
const isServerSide = "object" === "undefined";
// Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -217,34 +207,7 @@
/***/
},
- /***/ 5160: /***/ (
- __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__(2223)
- );
- const LoadableContext = _react.default.createContext(null);
- if (false) {
- } //# sourceMappingURL=loadable-context.shared-runtime.js.map
-
- /***/
- },
-
- /***/ 7622: /***/ (
+ /***/ 2522: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -286,7 +249,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
const _react = /*#__PURE__*/ _interop_require_default._(
__webpack_require__(2223)
);
- const _loadablecontextsharedruntime = __webpack_require__(5160);
+ const _loadablecontextsharedruntime = __webpack_require__(4844);
function resolve(obj) {
return obj && obj.default ? obj.default : obj;
}
@@ -519,13 +482,50 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
/***/
},
+
+ /***/ 4844: /***/ (
+ __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__(2223)
+ );
+ const LoadableContext = _react.default.createContext(null);
+ if (false) {
+ } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+
+ /***/
+ },
+
+ /***/ 7514: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(1709);
+
+ /***/
+ },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(1033)
+ __webpack_exec__(431)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,24 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[9804],
{
- /***/ 1679: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/hooks",
- function () {
- return __webpack_require__(9198);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
-
- /***/ 9198: /***/ (
+ /***/ 2592: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -76,13 +59,30 @@
/***/
},
+
+ /***/ 3925: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/hooks",
+ function () {
+ return __webpack_require__(2592);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(1679)
+ __webpack_exec__(3925)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
Diff too large to display
Diff for index-HASH.js
@@ -1,7 +1,24 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[3332],
{
- /***/ 3454: /***/ (
+ /***/ 8431: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/",
+ function () {
+ return __webpack_require__(8972);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
+
+ /***/ 8972: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -19,30 +36,13 @@
/***/
},
-
- /***/ 9241: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/",
- function () {
- return __webpack_require__(3454);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(9241)
+ __webpack_exec__(8431)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,24 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[4672],
{
- /***/ 3262: /***/ (module, exports, __webpack_require__) => {
+ /***/ 2025: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/link",
+ function () {
+ return __webpack_require__(3072);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
+
+ /***/ 3066: /***/ (module, exports, __webpack_require__) => {
"use strict";
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
@@ -28,16 +45,16 @@
const _react = /*#__PURE__*/ _interop_require_wildcard._(
__webpack_require__(2223)
);
- const _resolvehref = __webpack_require__(7868);
- const _islocalurl = __webpack_require__(9350);
- const _formaturl = __webpack_require__(6319);
- const _utils = __webpack_require__(9889);
- const _addlocale = __webpack_require__(9466);
- const _routercontextsharedruntime = __webpack_require__(5691);
- const _useintersection = __webpack_require__(3981);
- const _getdomainlocale = __webpack_require__(4206);
- const _addbasepath = __webpack_require__(9339);
- const _usemergedref = __webpack_require__(6848);
+ const _resolvehref = __webpack_require__(2776);
+ const _islocalurl = __webpack_require__(5770);
+ const _formaturl = __webpack_require__(8531);
+ const _utils = __webpack_require__(3565);
+ const _addlocale = __webpack_require__(8878);
+ const _routercontextsharedruntime = __webpack_require__(5111);
+ const _useintersection = __webpack_require__(6873);
+ const _getdomainlocale = __webpack_require__(4554);
+ const _addbasepath = __webpack_require__(9567);
+ const _usemergedref = __webpack_require__(4308);
const prefetched = new Set();
function prefetch(router, href, as, options) {
if (false) {
@@ -351,7 +368,167 @@
/***/
},
- /***/ 3981: /***/ (module, exports, __webpack_require__) => {
+ /***/ 3072: /***/ (
+ __unused_webpack_module,
+ __webpack_exports__,
+ __webpack_require__
+ ) => {
+ "use strict";
+ __webpack_require__.r(__webpack_exports__);
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+ /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+ /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+ /* harmony export */
+ });
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+ __webpack_require__(1503);
+ /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+ __webpack_require__(6929);
+ /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
+ /*#__PURE__*/ __webpack_require__.n(
+ next_link__WEBPACK_IMPORTED_MODULE_1__
+ );
+
+ function aLink(props) {
+ return /*#__PURE__*/ (0,
+ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
+ children: [
+ /*#__PURE__*/ (0,
+ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
+ children: "A Link page!",
+ }),
+ /*#__PURE__*/ (0,
+ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+ next_link__WEBPACK_IMPORTED_MODULE_1___default(),
+ {
+ href: "/",
+ children: "Go to /",
+ }
+ ),
+ ],
+ });
+ }
+ var __N_SSP = true;
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+
+ /***/
+ },
+
+ /***/ 4308: /***/ (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__(2223);
+ 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
+
+ /***/
+ },
+
+ /***/ 4554: /***/ (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__(7740);
+ 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
+
+ /***/
+ },
+
+ /***/ 6873: /***/ (module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -364,7 +541,7 @@
},
});
const _react = __webpack_require__(2223);
- const _requestidlecallback = __webpack_require__(1472);
+ const _requestidlecallback = __webpack_require__(6892);
const hasIntersectionObserver =
typeof IntersectionObserver === "function";
const observers = new Map();
@@ -476,189 +653,12 @@
/***/
},
- /***/ 4206: /***/ (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__(6704);
- 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
-
- /***/
- },
-
- /***/ 6691: /***/ (
+ /***/ 6929: /***/ (
module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(3262);
-
- /***/
- },
-
- /***/ 6771: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/link",
- function () {
- return __webpack_require__(8178);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
-
- /***/ 6848: /***/ (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__(2223);
- 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
-
- /***/
- },
-
- /***/ 8178: /***/ (
- __unused_webpack_module,
- __webpack_exports__,
- __webpack_require__
- ) => {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
- /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
- /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
- /* harmony export */
- });
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
- __webpack_require__(1503);
- /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(6691);
- /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
- /*#__PURE__*/ __webpack_require__.n(
- next_link__WEBPACK_IMPORTED_MODULE_1__
- );
-
- function aLink(props) {
- return /*#__PURE__*/ (0,
- react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
- children: [
- /*#__PURE__*/ (0,
- react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
- children: "A Link page!",
- }),
- /*#__PURE__*/ (0,
- react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
- next_link__WEBPACK_IMPORTED_MODULE_1___default(),
- {
- href: "/",
- children: "Go to /",
- }
- ),
- ],
- });
- }
- var __N_SSP = true;
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+ module.exports = __webpack_require__(3066);
/***/
},
@@ -668,7 +668,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(6771)
+ __webpack_exec__(2025)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,7 +1,24 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[188],
{
- /***/ 286: /***/ (
+ /***/ 417: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/routerDirect",
+ function () {
+ return __webpack_require__(504);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
+
+ /***/ 504: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -16,7 +33,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(1503);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(7798);
+ __webpack_require__(1840);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -36,29 +53,12 @@
/***/
},
- /***/ 4283: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/routerDirect",
- function () {
- return __webpack_require__(286);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
-
- /***/ 7798: /***/ (
+ /***/ 1840: /***/ (
module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(9587);
+ module.exports = __webpack_require__(1903);
/***/
},
@@ -68,7 +68,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(4283)
+ __webpack_exec__(417)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,7 +1,34 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[1209],
{
- /***/ 661: /***/ (
+ /***/ 2398: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(2397);
+
+ /***/
+ },
+
+ /***/ 4305: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/script",
+ function () {
+ return __webpack_require__(8543);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
+
+ /***/ 8543: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -16,7 +43,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(1503);
/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(5964);
+ __webpack_require__(2398);
/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -48,40 +75,13 @@
/***/
},
-
- /***/ 5964: /***/ (
- module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- module.exports = __webpack_require__(297);
-
- /***/
- },
-
- /***/ 8803: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/script",
- function () {
- return __webpack_require__(661);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(8803)
+ __webpack_exec__(4305)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,24 +1,17 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[3263],
{
- /***/ 3163: /***/ (
- __unused_webpack_module,
+ /***/ 1840: /***/ (
+ module,
__unused_webpack_exports,
__webpack_require__
) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/withRouter",
- function () {
- return __webpack_require__(3295);
- },
- ]);
- if (false) {
- }
+ module.exports = __webpack_require__(1903);
/***/
},
- /***/ 3295: /***/ (
+ /***/ 2037: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -33,7 +26,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(1503);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(7798);
+ __webpack_require__(1840);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -52,12 +45,19 @@
/***/
},
- /***/ 7798: /***/ (
- module,
+ /***/ 4041: /***/ (
+ __unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(9587);
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/withRouter",
+ function () {
+ return __webpack_require__(2037);
+ },
+ ]);
+ if (false) {
+ }
/***/
},
@@ -67,7 +67,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(3163)
+ __webpack_exec__(4041)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for 4498-HASH.js
Diff too large to display
Diff for 9225-HASH.js
@@ -1,32 +1,81 @@
"use strict";
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
- [9225],
+ [8439],
{
- /***/ 2: /***/ (__unused_webpack_module, exports, __webpack_require__) => {
+ /***/ 405: /***/ (
+ __unused_webpack_module,
+ exports,
+ __webpack_require__
+ ) => {
Object.defineProperty(exports, "__esModule", {
value: true,
});
- Object.defineProperty(exports, "ImageConfigContext", {
+ Object.defineProperty(exports, "default", {
enumerable: true,
get: function () {
- return ImageConfigContext;
+ return SideEffect;
},
});
- const _interop_require_default = __webpack_require__(9010);
- const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(8879)
- );
- const _imageconfig = __webpack_require__(1686);
- const ImageConfigContext = _react.default.createContext(
- _imageconfig.imageConfigDefault
- );
- if (false) {
- } //# sourceMappingURL=image-config-context.shared-runtime.js.map
+ const _react = __webpack_require__(1774);
+ const isServer = "object" === "undefined";
+ const useClientOnlyLayoutEffect = isServer
+ ? () => {}
+ : _react.useLayoutEffect;
+ const useClientOnlyEffect = isServer ? () => {} : _react.useEffect;
+ function SideEffect(props) {
+ const { headManager, reduceComponentsToState } = props;
+ function emitChange() {
+ if (headManager && headManager.mountedInstances) {
+ const headElements = _react.Children.toArray(
+ Array.from(headManager.mountedInstances).filter(Boolean)
+ );
+ headManager.updateHead(reduceComponentsToState(headElements));
+ }
+ }
+ if (isServer) {
+ headManager?.mountedInstances?.add(props.children);
+ emitChange();
+ }
+ useClientOnlyLayoutEffect(() => {
+ headManager?.mountedInstances?.add(props.children);
+ return () => {
+ headManager?.mountedInstances?.delete(props.children);
+ };
+ });
+ // We need to call `updateHead` method whenever the `SideEffect` is trigger in all
+ // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s
+ // being rendered, we only trigger the method from the last one.
+ // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`
+ // singleton in the layout effect pass, and actually trigger it in the effect pass.
+ useClientOnlyLayoutEffect(() => {
+ if (headManager) {
+ headManager._pendingUpdate = emitChange;
+ }
+ return () => {
+ if (headManager) {
+ headManager._pendingUpdate = emitChange;
+ }
+ };
+ });
+ useClientOnlyEffect(() => {
+ if (headManager && headManager._pendingUpdate) {
+ headManager._pendingUpdate();
+ headManager._pendingUpdate = null;
+ }
+ return () => {
+ if (headManager && headManager._pendingUpdate) {
+ headManager._pendingUpdate();
+ headManager._pendingUpdate = null;
+ }
+ };
+ });
+ return null;
+ } //# sourceMappingURL=side-effect.js.map
/***/
},
- /***/ 1169: /***/ (
+ /***/ 1155: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -40,9 +89,9 @@
return getImgProps;
},
});
- const _warnonce = __webpack_require__(4352);
- const _imageblursvg = __webpack_require__(2314);
- const _imageconfig = __webpack_require__(1686);
+ const _warnonce = __webpack_require__(5358);
+ const _imageblursvg = __webpack_require__(6924);
+ const _imageconfig = __webpack_require__(9712);
const VALID_LOADING_VALUES =
/* unused pure expression or super */ null && [
"lazy",
@@ -473,241 +522,40 @@
/***/
},
- /***/ 1666: /***/ (module, exports, __webpack_require__) => {
- /* __next_internal_client_entry_do_not_use__ cjs */
+ /***/ 1417: /***/ (
+ __unused_webpack_module,
+ exports,
+ __webpack_require__
+ ) => {
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, {
- default: function () {
+ Object.defineProperty(exports, "default", {
+ enumerable: true,
+ get: function () {
return _default;
},
- defaultHead: function () {
- return defaultHead;
- },
});
- const _interop_require_default = __webpack_require__(9010);
- const _interop_require_wildcard = __webpack_require__(2275);
- const _jsxruntime = __webpack_require__(1024);
- const _react = /*#__PURE__*/ _interop_require_wildcard._(
- __webpack_require__(8879)
- );
- const _sideeffect = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(2543)
- );
- const _headmanagercontextsharedruntime = __webpack_require__(5428);
- const _warnonce = __webpack_require__(4352);
- function defaultHead() {
- const head = [
- /*#__PURE__*/ (0, _jsxruntime.jsx)(
- "meta",
- {
- charSet: "utf-8",
- },
- "charset"
- ),
- /*#__PURE__*/ (0, _jsxruntime.jsx)(
- "meta",
- {
- name: "viewport",
- content: "width=device-width",
- },
- "viewport"
- ),
- ];
- return head;
- }
- function onlyReactElement(list, child) {
- // React children can be "string" or "number" in this case we ignore them for backwards compat
- if (typeof child === "string" || typeof child === "number") {
- return list;
- }
- // Adds support for React.Fragment
- if (child.type === _react.default.Fragment) {
- return list.concat(
- _react.default.Children.toArray(child.props.children).reduce(
- (fragmentList, fragmentChild) => {
- if (
- typeof fragmentChild === "string" ||
- typeof fragmentChild === "number"
- ) {
- return fragmentList;
- }
- return fragmentList.concat(fragmentChild);
- },
- []
- )
- );
+ const _findclosestquality = __webpack_require__(1639);
+ function defaultLoader({ config, src, width, quality }) {
+ if (false) {
}
- return list.concat(child);
- }
- const METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
- /*
- returns a function for filtering head child elements
- which shouldn't be duplicated, like <title/>
- Also adds support for deduplicated `key` properties
-*/ function unique() {
- const keys = new Set();
- const tags = new Set();
- const metaTypes = new Set();
- const metaCategories = {};
- return (h) => {
- let isUnique = true;
- let hasKey = false;
- if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
- hasKey = true;
- const key = h.key.slice(h.key.indexOf("$") + 1);
- if (keys.has(key)) {
- isUnique = false;
- } else {
- keys.add(key);
- }
- }
- // eslint-disable-next-line default-case
- switch (h.type) {
- case "title":
- case "base":
- if (tags.has(h.type)) {
- isUnique = false;
- } else {
- tags.add(h.type);
- }
- break;
- case "meta":
- for (let i = 0, len = METATYPES.length; i < len; i++) {
- const metatype = METATYPES[i];
- if (!h.props.hasOwnProperty(metatype)) continue;
- if (metatype === "charSet") {
- if (metaTypes.has(metatype)) {
- isUnique = false;
- } else {
- metaTypes.add(metatype);
- }
- } else {
- const category = h.props[metatype];
- const categories = metaCategories[metatype] || new Set();
- if (
- (metatype !== "name" || !hasKey) &&
- categories.has(category)
- ) {
- isUnique = false;
- } else {
- categories.add(category);
- metaCategories[metatype] = categories;
- }
- }
- }
- break;
- }
- return isUnique;
- };
- }
- /**
- *
- * @param headChildrenElements List of children of <Head>
- */ function reduceComponents(headChildrenElements) {
- return headChildrenElements
- .reduce(onlyReactElement, [])
- .reverse()
- .concat(defaultHead().reverse())
- .filter(unique())
- .reverse()
- .map((c, i) => {
- const key = c.key || i;
- if (false) {
- }
- return /*#__PURE__*/ _react.default.cloneElement(c, {
- key,
- });
- });
- }
- /**
- * This component injects elements to `<head>` of your page.
- * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
- */ function Head({ children }) {
- const headManager = (0, _react.useContext)(
- _headmanagercontextsharedruntime.HeadManagerContext
- );
- return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {
- reduceComponentsToState: reduceComponents,
- headManager: headManager,
- children: children,
- });
- }
- const _default = Head;
- 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=head.js.map
-
- /***/
- },
-
- /***/ 1686: /***/ (__unused_webpack_module, exports) => {
- 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],
- });
+ const q = (0, _findclosestquality.findClosestQuality)(quality, config);
+ return `${config.path}?url=${encodeURIComponent(
+ src
+ )}&w=${width}&q=${q}${
+ src.startsWith("/_next/static/media/") && false ? 0 : ""
+ }`;
}
- _export(exports, {
- VALID_LOADERS: function () {
- return VALID_LOADERS;
- },
- imageConfigDefault: function () {
- return imageConfigDefault;
- },
- });
- const VALID_LOADERS = [
- "default",
- "imgix",
- "cloudinary",
- "akamai",
- "custom",
- ];
- const imageConfigDefault = {
- deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
- imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
- path: "/_next/image",
- loader: "default",
- loaderFile: "",
- domains: [],
- disableStaticImages: false,
- minimumCacheTTL: 14400,
- formats: ["image/webp"],
- dangerouslyAllowSVG: false,
- contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,
- contentDispositionType: "attachment",
- localPatterns: undefined,
- remotePatterns: [],
- qualities: [75],
- unoptimized: false,
- }; //# sourceMappingURL=image-config.js.map
+ // We use this to determine if the import is the default loader
+ // or a custom loader defined by the user in next.config.js
+ defaultLoader.__next_img_default = true;
+ const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
/***/
},
- /***/ 2285: /***/ (__unused_webpack_module, exports) => {
+ /***/ 1639: /***/ (__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", {
value: true,
});
@@ -731,7 +579,35 @@
/***/
},
- /***/ 2314: /***/ (__unused_webpack_module, exports) => {
+ /***/ 2896: /***/ (
+ __unused_webpack_module,
+ exports,
+ __webpack_require__
+ ) => {
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "ImageConfigContext", {
+ enumerable: true,
+ get: function () {
+ return ImageConfigContext;
+ },
+ });
+ const _interop_require_default = __webpack_require__(2570);
+ const _react = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(1774)
+ );
+ const _imageconfig = __webpack_require__(9712);
+ const ImageConfigContext = _react.default.createContext(
+ _imageconfig.imageConfigDefault
+ );
+ if (false) {
+ } //# sourceMappingURL=image-config-context.shared-runtime.js.map
+
+ /***/
+ },
+
+ /***/ 6924: /***/ (__unused_webpack_module, exports) => {
/**
* A shared function, used on both client and server, to generate a SVG blur placeholder.
*/
@@ -770,113 +646,7 @@
/***/
},
- /***/ 2543: /***/ (
- __unused_webpack_module,
- exports,
- __webpack_require__
- ) => {
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "default", {
- enumerable: true,
- get: function () {
- return SideEffect;
- },
- });
- const _react = __webpack_require__(8879);
- const isServer = "object" === "undefined";
- const useClientOnlyLayoutEffect = isServer
- ? () => {}
- : _react.useLayoutEffect;
- const useClientOnlyEffect = isServer ? () => {} : _react.useEffect;
- function SideEffect(props) {
- const { headManager, reduceComponentsToState } = props;
- function emitChange() {
- if (headManager && headManager.mountedInstances) {
- const headElements = _react.Children.toArray(
- Array.from(headManager.mountedInstances).filter(Boolean)
- );
- headManager.updateHead(reduceComponentsToState(headElements));
- }
- }
- if (isServer) {
- headManager?.mountedInstances?.add(props.children);
- emitChange();
- }
- useClientOnlyLayoutEffect(() => {
- headManager?.mountedInstances?.add(props.children);
- return () => {
- headManager?.mountedInstances?.delete(props.children);
- };
- });
- // We need to call `updateHead` method whenever the `SideEffect` is trigger in all
- // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s
- // being rendered, we only trigger the method from the last one.
- // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`
- // singleton in the layout effect pass, and actually trigger it in the effect pass.
- useClientOnlyLayoutEffect(() => {
- if (headManager) {
- headManager._pendingUpdate = emitChange;
- }
- return () => {
- if (headManager) {
- headManager._pendingUpdate = emitChange;
- }
- };
- });
- useClientOnlyEffect(() => {
- if (headManager && headManager._pendingUpdate) {
- headManager._pendingUpdate();
- headManager._pendingUpdate = null;
- }
- return () => {
- if (headManager && headManager._pendingUpdate) {
- headManager._pendingUpdate();
- headManager._pendingUpdate = null;
- }
- };
- });
- return null;
- } //# sourceMappingURL=side-effect.js.map
-
- /***/
- },
-
- /***/ 8035: /***/ (
- __unused_webpack_module,
- exports,
- __webpack_require__
- ) => {
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "default", {
- enumerable: true,
- get: function () {
- return _default;
- },
- });
- const _findclosestquality = __webpack_require__(2285);
- function defaultLoader({ config, src, width, quality }) {
- if (false) {
- }
- const q = (0, _findclosestquality.findClosestQuality)(quality, config);
- return `${config.path}?url=${encodeURIComponent(
- src
- )}&w=${width}&q=${q}${
- src.startsWith("/_next/static/media/") && false ? 0 : ""
- }`;
- }
- // We use this to determine if the import is the default loader
- // or a custom loader defined by the user in next.config.js
- defaultLoader.__next_img_default = true;
- const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
-
- /***/
- },
-
- /***/ 8848: /***/ (module, exports, __webpack_require__) => {
+ /***/ 7614: /***/ (module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", {
value: true,
});
@@ -886,7 +656,7 @@
return useMergedRef;
},
});
- const _react = __webpack_require__(8879);
+ const _react = __webpack_require__(1774);
function useMergedRef(refA, refB) {
const cleanupA = (0, _react.useRef)(null);
const cleanupB = (0, _react.useRef)(null);
@@ -952,32 +722,7 @@
/***/
},
- /***/ 9059: /***/ (
- __unused_webpack_module,
- exports,
- __webpack_require__
- ) => {
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "RouterContext", {
- enumerable: true,
- get: function () {
- return RouterContext;
- },
- });
- const _interop_require_default = __webpack_require__(9010);
- const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(8879)
- );
- const RouterContext = _react.default.createContext(null);
- if (false) {
- } //# sourceMappingURL=router-context.shared-runtime.js.map
-
- /***/
- },
-
- /***/ 9225: /***/ (module, exports, __webpack_require__) => {
+ /***/ 8439: /***/ (module, exports, __webpack_require__) => {
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
value: true,
@@ -988,27 +733,27 @@
return Image;
},
});
- const _interop_require_default = __webpack_require__(9010);
- const _interop_require_wildcard = __webpack_require__(2275);
- const _jsxruntime = __webpack_require__(1024);
+ const _interop_require_default = __webpack_require__(2570);
+ const _interop_require_wildcard = __webpack_require__(5643);
+ const _jsxruntime = __webpack_require__(2014);
const _react = /*#__PURE__*/ _interop_require_wildcard._(
- __webpack_require__(8879)
+ __webpack_require__(1774)
);
const _reactdom = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(3869)
+ __webpack_require__(7499)
);
const _head = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(1666)
+ __webpack_require__(9452)
);
- const _getimgprops = __webpack_require__(1169);
- const _imageconfig = __webpack_require__(1686);
- const _imageconfigcontextsharedruntime = __webpack_require__(2);
- const _warnonce = __webpack_require__(4352);
- const _routercontextsharedruntime = __webpack_require__(9059);
+ const _getimgprops = __webpack_require__(1155);
+ const _imageconfig = __webpack_require__(9712);
+ const _imageconfigcontextsharedruntime = __webpack_require__(2896);
+ const _warnonce = __webpack_require__(5358);
+ const _routercontextsharedruntime = __webpack_require__(9813);
const _imageloader = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(8035)
+ __webpack_require__(1417)
);
- const _usemergedref = __webpack_require__(8848);
+ const _usemergedref = __webpack_require__(7614);
// This is replaced by webpack define plugin
const configEnv = {
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -1329,5 +1074,264 @@
/***/
},
+
+ /***/ 9452: /***/ (module, exports, __webpack_require__) => {
+ /* __next_internal_client_entry_do_not_use__ cjs */
+ 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, {
+ default: function () {
+ return _default;
+ },
+ defaultHead: function () {
+ return defaultHead;
+ },
+ });
+ const _interop_require_default = __webpack_require__(2570);
+ const _interop_require_wildcard = __webpack_require__(5643);
+ const _jsxruntime = __webpack_require__(2014);
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(
+ __webpack_require__(1774)
+ );
+ const _sideeffect = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(405)
+ );
+ const _headmanagercontextsharedruntime = __webpack_require__(5326);
+ const _warnonce = __webpack_require__(5358);
+ function defaultHead() {
+ const head = [
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(
+ "meta",
+ {
+ charSet: "utf-8",
+ },
+ "charset"
+ ),
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(
+ "meta",
+ {
+ name: "viewport",
+ content: "width=device-width",
+ },
+ "viewport"
+ ),
+ ];
+ return head;
+ }
+ function onlyReactElement(list, child) {
+ // React children can be "string" or "number" in this case we ignore them for backwards compat
+ if (typeof child === "string" || typeof child === "number") {
+ return list;
+ }
+ // Adds support for React.Fragment
+ if (child.type === _react.default.Fragment) {
+ return list.concat(
+ _react.default.Children.toArray(child.props.children).reduce(
+ (fragmentList, fragmentChild) => {
+ if (
+ typeof fragmentChild === "string" ||
+ typeof fragmentChild === "number"
+ ) {
+ return fragmentList;
+ }
+ return fragmentList.concat(fragmentChild);
+ },
+ []
+ )
+ );
+ }
+ return list.concat(child);
+ }
+ const METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
+ /*
+ returns a function for filtering head child elements
+ which shouldn't be duplicated, like <title/>
+ Also adds support for deduplicated `key` properties
+*/ function unique() {
+ const keys = new Set();
+ const tags = new Set();
+ const metaTypes = new Set();
+ const metaCategories = {};
+ return (h) => {
+ let isUnique = true;
+ let hasKey = false;
+ if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
+ hasKey = true;
+ const key = h.key.slice(h.key.indexOf("$") + 1);
+ if (keys.has(key)) {
+ isUnique = false;
+ } else {
+ keys.add(key);
+ }
+ }
+ // eslint-disable-next-line default-case
+ switch (h.type) {
+ case "title":
+ case "base":
+ if (tags.has(h.type)) {
+ isUnique = false;
+ } else {
+ tags.add(h.type);
+ }
+ break;
+ case "meta":
+ for (let i = 0, len = METATYPES.length; i < len; i++) {
+ const metatype = METATYPES[i];
+ if (!h.props.hasOwnProperty(metatype)) continue;
+ if (metatype === "charSet") {
+ if (metaTypes.has(metatype)) {
+ isUnique = false;
+ } else {
+ metaTypes.add(metatype);
+ }
+ } else {
+ const category = h.props[metatype];
+ const categories = metaCategories[metatype] || new Set();
+ if (
+ (metatype !== "name" || !hasKey) &&
+ categories.has(category)
+ ) {
+ isUnique = false;
+ } else {
+ categories.add(category);
+ metaCategories[metatype] = categories;
+ }
+ }
+ }
+ break;
+ }
+ return isUnique;
+ };
+ }
+ /**
+ *
+ * @param headChildrenElements List of children of <Head>
+ */ function reduceComponents(headChildrenElements) {
+ return headChildrenElements
+ .reduce(onlyReactElement, [])
+ .reverse()
+ .concat(defaultHead().reverse())
+ .filter(unique())
+ .reverse()
+ .map((c, i) => {
+ const key = c.key || i;
+ if (false) {
+ }
+ return /*#__PURE__*/ _react.default.cloneElement(c, {
+ key,
+ });
+ });
+ }
+ /**
+ * This component injects elements to `<head>` of your page.
+ * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
+ */ function Head({ children }) {
+ const headManager = (0, _react.useContext)(
+ _headmanagercontextsharedruntime.HeadManagerContext
+ );
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {
+ reduceComponentsToState: reduceComponents,
+ headManager: headManager,
+ children: children,
+ });
+ }
+ const _default = Head;
+ 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=head.js.map
+
+ /***/
+ },
+
+ /***/ 9712: /***/ (__unused_webpack_module, exports) => {
+ 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, {
+ VALID_LOADERS: function () {
+ return VALID_LOADERS;
+ },
+ imageConfigDefault: function () {
+ return imageConfigDefault;
+ },
+ });
+ const VALID_LOADERS = [
+ "default",
+ "imgix",
+ "cloudinary",
+ "akamai",
+ "custom",
+ ];
+ const imageConfigDefault = {
+ deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+ imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+ path: "/_next/image",
+ loader: "default",
+ loaderFile: "",
+ domains: [],
+ disableStaticImages: false,
+ minimumCacheTTL: 14400,
+ formats: ["image/webp"],
+ dangerouslyAllowSVG: false,
+ contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,
+ contentDispositionType: "attachment",
+ localPatterns: undefined,
+ remotePatterns: [],
+ qualities: [75],
+ unoptimized: false,
+ }; //# sourceMappingURL=image-config.js.map
+
+ /***/
+ },
+
+ /***/ 9813: /***/ (
+ __unused_webpack_module,
+ exports,
+ __webpack_require__
+ ) => {
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "RouterContext", {
+ enumerable: true,
+ get: function () {
+ return RouterContext;
+ },
+ });
+ const _interop_require_default = __webpack_require__(2570);
+ const _react = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(1774)
+ );
+ const RouterContext = _react.default.createContext(null);
+ if (false) {
+ } //# sourceMappingURL=router-context.shared-runtime.js.map
+
+ /***/
+ },
},
]);
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],
{
- /***/ 4505: /***/ (
+ /***/ 2788: /***/ () => {
+ /* (ignored) */
+ /***/
+ },
+
+ /***/ 5325: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 7455, 23)
+ __webpack_require__.t.bind(__webpack_require__, 7641, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 2436, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8833, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 4220, 23)
+ __webpack_require__.t.bind(__webpack_require__, 202, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 6179, 23)
+ __webpack_require__.t.bind(__webpack_require__, 5505, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 477, 23)
+ __webpack_require__.t.bind(__webpack_require__, 9743, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 45, 23)
+ __webpack_require__.t.bind(__webpack_require__, 2067, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 4644, 23)
+ __webpack_require__.t.bind(__webpack_require__, 1166, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 8713, 23)
+ __webpack_require__.t.bind(__webpack_require__, 3791, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 1432, 23)
+ __webpack_require__.t.bind(__webpack_require__, 666, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 5011, 23)
+ __webpack_require__.t.bind(__webpack_require__, 9993, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 2560, 23)
+ __webpack_require__.t.bind(__webpack_require__, 1706, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 5161)
+ __webpack_require__.bind(__webpack_require__, 6335)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 7801, 23)
+ __webpack_require__.t.bind(__webpack_require__, 3883, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 9992, 23)
+ __webpack_require__.t.bind(__webpack_require__, 7030, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 2066, 23)
+ __webpack_require__.t.bind(__webpack_require__, 3712, 23)
);
/***/
},
-
- /***/ 7854: /***/ () => {
- /* (ignored) */
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
@@ -66,8 +66,8 @@
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(
0,
- [9137, 4498],
- () => (__webpack_exec__(1225), __webpack_exec__(4505))
+ [2494, 6734],
+ () => (__webpack_exec__(9303), __webpack_exec__(5325))
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
packages/next/src/build/segment-config/middleware/middleware-config.ts
Outdated
Show resolved
Hide resolved
runtime
field to MiddlewareConfig
typeruntime
field to MiddlewareConfig
type
This field was added recently, it seems like this was just an oversight?
Fixes #84565