Skip to content

Commit

Permalink
feat(app): add experimental.missingSuspenseWithCSRBailout (#57642)
Browse files Browse the repository at this point in the history
### What?

This PR adds a new flag called
`experimental.missingSuspenseWithCSRBailout`.

### Why?

Via this PR we can break a build when calling `useSearchParams` without
wrapping it in a suspense boundary.

If no suspense boundaries are present, Next.js must avoid doing SSR and
defer the entire page's rendering to the client. This is not a great
default. Instead, we will now break the build so that you are forced to
add a boundary.

### How?

Add an experimental flag. If a `BailoutToCSRError` error is thrown and
this flag is enabled, the build should fail and log an error, instead of
showing a warning and bail the entire page to client-side rendering.

Closes NEXT-1770

---------

Co-authored-by: Balázs Orbán <info@balazsorban.com>
Co-authored-by: Wyatt Johnson <accounts+github@wyattjoh.ca>
  • Loading branch information
3 people authored Jan 9, 2024
1 parent 8aced5b commit c52cb5a
Show file tree
Hide file tree
Showing 30 changed files with 471 additions and 387 deletions.
15 changes: 15 additions & 0 deletions errors/missing-suspense-with-csr-bailout.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: Missing Suspense with CSR Bailout
---

#### Why This Error Occurred

Certain methods like `useSearchParams()` opt Next.js into client-side rendering. Without a suspense boundary, this will opt the entire page into client-side rendering, which is likely not intended.

#### Possible Ways to Fix It

Make sure that the method is wrapped in a suspense boundary. This way Next.js will only opt the component into client-side rendering up to the suspense boundary.

### Useful Links

- [`useSearchParams`](https://nextjs.org/docs/app/api-reference/functions/use-search-params)
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
import { throwWithNoSSR } from '../../shared/lib/lazy-dynamic/no-ssr-error'
import { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'
import { staticGenerationAsyncStorage } from './static-generation-async-storage.external'

export function bailoutToClientRendering(): void | never {
export function bailoutToClientRendering(reason: string): void | never {
const staticGenerationStore = staticGenerationAsyncStorage.getStore()

if (staticGenerationStore?.forceStatic) {
return
}
if (staticGenerationStore?.forceStatic) return

if (staticGenerationStore?.isStaticGeneration) {
throwWithNoSSR()
}
if (staticGenerationStore?.isStaticGeneration)
throw new BailoutToCSRError(reason)
}
2 changes: 1 addition & 1 deletion packages/next/src/client/components/navigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ export function useSearchParams(): ReadonlyURLSearchParams {
const { bailoutToClientRendering } =
require('./bailout-to-client-rendering') as typeof import('./bailout-to-client-rendering')
// TODO-APP: handle dynamic = 'force-static' here and on the client
bailoutToClientRendering()
bailoutToClientRendering('useSearchParams()')
}

return readonlySearchParams
Expand Down
6 changes: 3 additions & 3 deletions packages/next/src/client/on-recoverable-error.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { isBailoutCSRError } from '../shared/lib/lazy-dynamic/no-ssr-error'
import { isBailoutToCSRError } from '../shared/lib/lazy-dynamic/bailout-to-csr'

export default function onRecoverableError(err: any) {
export default function onRecoverableError(err: unknown) {
// Using default react onRecoverableError
// x-ref: https://github.com/facebook/react/blob/d4bc16a7d69eb2ea38a88c8ac0b461d5f72cdcab/packages/react-dom/src/client/ReactDOMRoot.js#L83
const defaultOnRecoverableError =
Expand All @@ -13,7 +13,7 @@ export default function onRecoverableError(err: any) {
}

// Skip certain custom errors which are not expected to be reported on client
if (isBailoutCSRError(err)) return
if (isBailoutToCSRError(err)) return

defaultOnRecoverableError(err)
}
2 changes: 0 additions & 2 deletions packages/next/src/export/helpers/is-dynamic-usage-error.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import { DYNAMIC_ERROR_CODE } from '../../client/components/hooks-server-context'
import { isNotFoundError } from '../../client/components/not-found'
import { isRedirectError } from '../../client/components/redirect'
import { isBailoutCSRError } from '../../shared/lib/lazy-dynamic/no-ssr-error'

export const isDynamicUsageError = (err: any) =>
err.digest === DYNAMIC_ERROR_CODE ||
isNotFoundError(err) ||
isBailoutCSRError(err) ||
isRedirectError(err)
6 changes: 5 additions & 1 deletion packages/next/src/export/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,11 @@ export async function exportAppImpl(
: {}),
strictNextHead: !!nextConfig.experimental.strictNextHead,
deploymentId: nextConfig.experimental.deploymentId,
experimental: { ppr: nextConfig.experimental.ppr === true },
experimental: {
ppr: nextConfig.experimental.ppr === true,
missingSuspenseWithCSRBailout:
nextConfig.experimental.missingSuspenseWithCSRBailout,
},
}

const { serverRuntimeConfig, publicRuntimeConfig } = nextConfig
Expand Down
14 changes: 5 additions & 9 deletions packages/next/src/export/routes/pages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
NEXT_DATA_SUFFIX,
SERVER_PROPS_EXPORT_ERROR,
} from '../../lib/constants'
import { isBailoutCSRError } from '../../shared/lib/lazy-dynamic/no-ssr-error'
import { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'
import AmpHtmlValidator from 'next/dist/compiled/amphtml-validator'
import { FileType, fileExists } from '../../lib/file-exists'
import { lazyRenderPagesPage } from '../../server/future/route-modules/pages/module.render'
Expand Down Expand Up @@ -105,10 +105,8 @@ export async function exportPages(
query,
renderOpts
)
} catch (err: any) {
if (!isBailoutCSRError(err)) {
throw err
}
} catch (err) {
if (!isBailoutToCSRError(err)) throw err
}
}

Expand Down Expand Up @@ -163,10 +161,8 @@ export async function exportPages(
{ ...query, amp: '1' },
renderOpts
)
} catch (err: any) {
if (!isBailoutCSRError(err)) {
throw err
}
} catch (err) {
if (!isBailoutToCSRError(err)) throw err
}

const ampHtml =
Expand Down
7 changes: 5 additions & 2 deletions packages/next/src/export/worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import { createIncrementalCache } from './helpers/create-incremental-cache'
import { isPostpone } from '../server/lib/router-utils/is-postpone'
import { isMissingPostponeDataError } from '../server/app-render/is-missing-postpone-error'
import { isDynamicUsageError } from './helpers/is-dynamic-usage-error'
import { isBailoutToCSRError } from '../shared/lib/lazy-dynamic/bailout-to-csr'

const envConfig = require('../shared/lib/runtime-config.external')

Expand Down Expand Up @@ -318,9 +319,11 @@ async function exportPageImpl(
// if this is a postpone error, it's logged elsewhere, so no need to log it again here
if (!isMissingPostponeDataError(err)) {
console.error(
`\nError occurred prerendering page "${path}". Read more: https://nextjs.org/docs/messages/prerender-error\n` +
(isError(err) && err.stack ? err.stack : err)
`\nError occurred prerendering page "${path}". Read more: https://nextjs.org/docs/messages/prerender-error\n`
)
if (!isBailoutToCSRError(err)) {
console.error(isError(err) && err.stack ? err.stack : err)
}
}

return { error: true }
Expand Down
19 changes: 13 additions & 6 deletions packages/next/src/server/app-render/app-render.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ import { parseAndValidateFlightRouterState } from './parse-and-validate-flight-r
import { validateURL } from './validate-url'
import { createFlightRouterStateFromLoaderTree } from './create-flight-router-state-from-loader-tree'
import { handleAction } from './action-handler'
import { isBailoutCSRError } from '../../shared/lib/lazy-dynamic/no-ssr-error'
import { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'
import { warn, error } from '../../build/output/log'
import { appendMutableCookies } from '../web/spec-extension/adapters/request-cookies'
import { createServerInsertedHTML } from './server-inserted-html'
Expand Down Expand Up @@ -996,12 +996,19 @@ async function renderToHTMLOrFlightImpl(
throw err
}

// True if this error was a bailout to client side rendering error.
const shouldBailoutToCSR = isBailoutCSRError(err)
/** True if this error was a bailout to client side rendering error. */
const shouldBailoutToCSR = isBailoutToCSRError(err)
if (shouldBailoutToCSR) {
console.log()

if (renderOpts.experimental.missingSuspenseWithCSRBailout) {
error(
`${err.message} should be wrapped in a suspense boundary at page "${pagePath}". https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout`
)
throw err
}
warn(
`Entire page ${pagePath} deopted into client-side rendering. https://nextjs.org/docs/messages/deopted-into-client-rendering`,
pagePath
`Entire page "${pagePath}" deopted into client-side rendering. https://nextjs.org/docs/messages/deopted-into-client-rendering`
)
}

Expand Down Expand Up @@ -1212,7 +1219,7 @@ async function renderToHTMLOrFlightImpl(
renderOpts.experimental.ppr &&
staticGenerationStore.postponeWasTriggered &&
!metadata.postponed &&
(!response.err || !isBailoutCSRError(response.err))
(!response.err || !isBailoutToCSRError(response.err))
) {
// a call to postpone was made but was caught and not detected by Next.js. We should fail the build immediately
// as we won't be able to generate the static part
Expand Down
8 changes: 5 additions & 3 deletions packages/next/src/server/app-render/create-error-handler.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { formatServerError } from '../../lib/format-server-error'
import { SpanStatusCode, getTracer } from '../lib/trace/tracer'
import { isAbortError } from '../pipe-readable'
import { isDynamicUsageError } from '../../export/helpers/is-dynamic-usage-error'
import { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'

export type ErrorHandler = (err: any) => string | undefined

Expand Down Expand Up @@ -34,11 +35,12 @@ export function createErrorHandler({
return (err) => {
if (allCapturedErrors) allCapturedErrors.push(err)

// A formatted error is already logged for this type of error
if (isBailoutToCSRError(err)) return

// These errors are expected. We return the digest
// so that they can be properly handled.
if (isDynamicUsageError(err)) {
return err.digest
}
if (isDynamicUsageError(err)) return err.digest

// If the response was closed, we don't need to log the error.
if (isAbortError(err)) return
Expand Down
2 changes: 1 addition & 1 deletion packages/next/src/server/app-render/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ export interface RenderOptsPartial {
}
params?: ParsedUrlQuery
isPrefetch?: boolean
experimental: { ppr: boolean }
experimental: { ppr: boolean; missingSuspenseWithCSRBailout?: boolean }
postponed?: string
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export type StaticGenerationContext = {
isDraftMode?: boolean
isServerAction?: boolean
waitUntil?: Promise<any>
experimental: { ppr: boolean }
experimental: { ppr: boolean; missingSuspenseWithCSRBailout?: boolean }

/**
* A hack around accessing the store value outside the context of the
Expand Down
1 change: 1 addition & 0 deletions packages/next/src/server/config-schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,7 @@ export const configSchema: zod.ZodType<NextConfig> = z.lazy(() =>
staticWorkerRequestDeduping: z.boolean().optional(),
useWasmBinary: z.boolean().optional(),
useLightningcss: z.boolean().optional(),
missingSuspenseWithCSRBailout: z.boolean().optional(),
})
.optional(),
exportPathMap: z
Expand Down
11 changes: 11 additions & 0 deletions packages/next/src/server/config-shared.ts
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,16 @@ export interface ExperimentalConfig {
* Use lightningcss instead of swc_css
*/
useLightningcss?: boolean

/**
* Certain methods calls like `useSearchParams()` can bail out of server-side rendering of **entire** pages to client-side rendering,
* if they are not wrapped in a suspense boundary.
*
* When this flag is set to `true`, Next.js will break the build instead of warning, to force the developer to add a suspense boundary above the method call.
*
* @default false
*/
missingSuspenseWithCSRBailout?: boolean
}

export type ExportPathMap = {
Expand Down Expand Up @@ -811,6 +821,7 @@ export const defaultConfig: NextConfig = {
? true
: false,
webpackBuildWorker: undefined,
missingSuspenseWithCSRBailout: false,
},
}

Expand Down
14 changes: 14 additions & 0 deletions packages/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// This has to be a shared module which is shared between client component error boundary and dynamic component

const BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'

/** An error that should be thrown when we want to bail out to client-side rendering. */
export class BailoutToCSRError extends Error {
digest: typeof BAILOUT_TO_CSR = BAILOUT_TO_CSR
}

/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */
export function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {
if (typeof err !== 'object' || err === null) return false
return 'digest' in err && err.digest === BAILOUT_TO_CSR
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
'use client'

import type { ReactElement } from 'react'
import { BailoutToCSRError } from './bailout-to-csr'

interface BailoutToCSRProps {
reason: string
children: ReactElement
}

/**
* If rendered on the server, this component throws an error
* to signal Next.js that it should bail out to client-side rendering instead.
*/
export function BailoutToCSR({ reason, children }: BailoutToCSRProps) {
if (typeof window === 'undefined') {
throw new BailoutToCSRError(reason)
}

return children
}
14 changes: 0 additions & 14 deletions packages/next/src/shared/lib/lazy-dynamic/dynamic-no-ssr.tsx

This file was deleted.

46 changes: 24 additions & 22 deletions packages/next/src/shared/lib/lazy-dynamic/loadable.tsx
Original file line number Diff line number Diff line change
@@ -1,43 +1,45 @@
import { Suspense, lazy, Fragment } from 'react'
import { NoSSR } from './dynamic-no-ssr'
import { Suspense, lazy } from 'react'
import { BailoutToCSR } from './dynamic-bailout-to-csr'
import type { ComponentModule } from './types'

// 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<P>(mod: React.ComponentType<P> | ComponentModule<P>) {
return { default: (mod as ComponentModule<P>)?.default || mod }
return { default: (mod as ComponentModule<P>)?.default ?? mod }
}

function Loadable(options: any) {
const opts = {
loader: null,
loading: null,
ssr: true,
...options,
}
const defaultOptions = {
loader: () => Promise.resolve(convertModule(() => null)),
loading: null,
ssr: true,
}

const loader = () =>
opts.loader != null
? opts.loader().then(convertModule)
: Promise.resolve(convertModule(() => null))
interface LoadableOptions {
loader?: () => Promise<React.ComponentType<any> | ComponentModule<any>>
loading?: React.ComponentType<any> | null
ssr?: boolean
}

const Lazy = lazy(loader)
function Loadable(options: LoadableOptions) {
const opts = { ...defaultOptions, ...options }
const Lazy = lazy(() => opts.loader().then(convertModule))
const Loading = opts.loading
const Wrap = opts.ssr ? Fragment : NoSSR

function LoadableComponent(props: any) {
const fallbackElement = Loading ? (
<Loading isLoading={true} pastDelay={true} error={null} />
) : null

return (
<Suspense fallback={fallbackElement}>
<Wrap>
<Lazy {...props} />
</Wrap>
</Suspense>
const children = opts.ssr ? (
<Lazy {...props} />
) : (
<BailoutToCSR reason="next/dynamic">
<Lazy {...props} />
</BailoutToCSR>
)

return <Suspense fallback={fallbackElement}>{children}</Suspense>
}

LoadableComponent.displayName = 'LoadableComponent'
Expand Down
13 changes: 0 additions & 13 deletions packages/next/src/shared/lib/lazy-dynamic/no-ssr-error.ts

This file was deleted.

Loading

1 comment on commit c52cb5a

@ijjk
Copy link
Member

@ijjk ijjk commented on c52cb5a Jan 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stats from current release

Default Build (Increase detected ⚠️)
General
vercel/next.js canary v14.0.4 vercel/next.js canary Change
buildDuration 9.9s 13.3s ⚠️ +3.3s
buildDurationCached 5.8s 6.1s ⚠️ +253ms
nodeModulesSize 200 MB 199 MB N/A
nextStartRea..uration (ms) 428ms 427ms N/A
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary v14.0.4 vercel/next.js canary Change
170-HASH.js gzip 26.7 kB 28.6 kB ⚠️ +1.86 kB
199.HASH.js gzip 181 B 182 B N/A
3f784ff6-HASH.js gzip 53.3 kB 53.3 kB N/A
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 239 B 242 B N/A
main-HASH.js gzip 31.7 kB 31.8 kB N/A
webpack-HASH.js gzip 1.7 kB 1.7 kB N/A
Overall change 71.9 kB 73.8 kB ⚠️ +1.86 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary v14.0.4 vercel/next.js canary Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary v14.0.4 vercel/next.js canary Change
_app-HASH.js gzip 195 B 195 B
_error-HASH.js gzip 183 B 181 B N/A
amp-HASH.js gzip 501 B 502 B N/A
css-HASH.js gzip 321 B 321 B
dynamic-HASH.js gzip 2.5 kB 2.5 kB N/A
edge-ssr-HASH.js gzip 255 B 253 B N/A
head-HASH.js gzip 349 B 349 B
hooks-HASH.js gzip 368 B 369 B N/A
image-HASH.js gzip 4.27 kB 4.28 kB N/A
index-HASH.js gzip 255 B 256 B N/A
link-HASH.js gzip 2.6 kB 2.61 kB N/A
routerDirect..HASH.js gzip 311 B 311 B
script-HASH.js gzip 384 B 383 B N/A
withRouter-HASH.js gzip 307 B 308 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.28 kB 1.28 kB
Client Build Manifests
vercel/next.js canary v14.0.4 vercel/next.js canary Change
_buildManifest.js gzip 483 B 484 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary v14.0.4 vercel/next.js canary Change
index.html gzip 529 B 526 B N/A
link.html gzip 543 B 539 B N/A
withRouter.html gzip 524 B 523 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary v14.0.4 vercel/next.js canary Change
edge-ssr.js gzip 93.5 kB 93.8 kB ⚠️ +302 B
page.js gzip 146 kB 148 kB ⚠️ +1.95 kB
Overall change 239 kB 242 kB ⚠️ +2.25 kB
Middleware size
vercel/next.js canary v14.0.4 vercel/next.js canary Change
middleware-b..fest.js gzip 623 B 621 B N/A
middleware-r..fest.js gzip 151 B 151 B
middleware.js gzip 37.4 kB 37.5 kB N/A
edge-runtime..pack.js gzip 1.92 kB 1.92 kB
Overall change 2.07 kB 2.07 kB
Next Runtimes Overall increase ⚠️
vercel/next.js canary v14.0.4 vercel/next.js canary Change
app-page-exp...dev.js gzip 168 kB 169 kB ⚠️ +1.03 kB
app-page-exp..prod.js gzip 93.9 kB 95.3 kB ⚠️ +1.37 kB
app-page-tur..prod.js gzip 94.7 kB 96 kB ⚠️ +1.3 kB
app-page-tur..prod.js gzip 89.2 kB 90.6 kB ⚠️ +1.32 kB
app-page.run...dev.js gzip 138 kB 142 kB ⚠️ +3.6 kB
app-page.run..prod.js gzip 88.6 kB 89.9 kB ⚠️ +1.33 kB
app-route-ex...dev.js gzip 24 kB 24.1 kB N/A
app-route-ex..prod.js gzip 16.7 kB 16.7 kB N/A
app-route-tu..prod.js gzip 16.7 kB 16.7 kB N/A
app-route-tu..prod.js gzip 16.3 kB 16.3 kB N/A
app-route.ru...dev.js gzip 23.4 kB 23.5 kB N/A
app-route.ru..prod.js gzip 16.3 kB 16.3 kB N/A
pages-api-tu..prod.js gzip 9.37 kB 9.38 kB N/A
pages-api.ru...dev.js gzip 9.64 kB 9.65 kB N/A
pages-api.ru..prod.js gzip 9.37 kB 9.37 kB N/A
pages-turbo...prod.js gzip 21.9 kB 21.9 kB N/A
pages.runtim...dev.js gzip 22.6 kB 22.5 kB N/A
pages.runtim..prod.js gzip 21.9 kB 21.9 kB N/A
server.runti..prod.js gzip 49.4 kB 49.5 kB ⚠️ +131 B
Overall change 722 kB 732 kB ⚠️ +10.1 kB
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 dynamic-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [739],
   {
-    /***/ 8484: /***/ function (
+    /***/ 9816: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/dynamic",
         function () {
-          return __webpack_require__(1752);
+          return __webpack_require__(6222);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 6595: /***/ function (module, exports, __webpack_require__) {
+    /***/ 3943: /***/ function (module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -41,11 +41,12 @@
         },
       });
       const _interop_require_default = __webpack_require__(1351);
+      const _jsxruntime = __webpack_require__(1527);
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(959)
       );
       const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(5643)
+        __webpack_require__(3191)
       );
       const isServerSide = "object" === "undefined";
       // Normalize loader to return the module as form { default: Component } for `React.lazy`.
@@ -67,7 +68,7 @@
         const Loading = loadableOptions.loading;
         // This will only be rendered on the server side
         return () =>
-          /*#__PURE__*/ _react.default.createElement(Loading, {
+          /*#__PURE__*/ (0, _jsxruntime.jsx)(Loading, {
             error: null,
             isLoading: true,
             pastDelay: false,
@@ -146,7 +147,7 @@
       /***/
     },
 
-    /***/ 1674: /***/ function (
+    /***/ 4363: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -173,7 +174,7 @@
       /***/
     },
 
-    /***/ 5643: /***/ function (
+    /***/ 3191: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -215,7 +216,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(959)
       );
-      const _loadablecontextsharedruntime = __webpack_require__(1674);
+      const _loadablecontextsharedruntime = __webpack_require__(4363);
       function resolve(obj) {
         return obj && obj.default ? obj.default : obj;
       }
@@ -450,7 +451,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 1752: /***/ function (
+    /***/ 6222: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -466,7 +467,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1527);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(5620);
+        __webpack_require__(4438);
       /* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -475,11 +476,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
         () =>
           __webpack_require__
-            .e(/* import() */ 199)
-            .then(__webpack_require__.bind(__webpack_require__, 9199)),
+            .e(/* import() */ 18)
+            .then(__webpack_require__.bind(__webpack_require__, 6018)),
         {
           loadableGenerated: {
-            webpack: () => [/*require.resolve*/ 9199],
+            webpack: () => [/*require.resolve*/ 6018],
           },
         }
       );
@@ -506,12 +507,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
       /***/
     },
 
-    /***/ 5620: /***/ function (
+    /***/ 4438: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(6595);
+      module.exports = __webpack_require__(3943);
 
       /***/
     },
@@ -521,8 +522,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
     /******/ var __webpack_exec__ = function (moduleId) {
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
-    /******/ __webpack_require__.O(0, [774, 888, 179], function () {
-      return __webpack_exec__(8484);
+    /******/ __webpack_require__.O(0, [888, 774, 179], function () {
+      return __webpack_exec__(9816);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [358],
   {
-    /***/ 1552: /***/ function (
+    /***/ 4070: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function () {
-          return __webpack_require__(7459);
+          return __webpack_require__(3697);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7534: /***/ function (module, exports, __webpack_require__) {
+    /***/ 2353: /***/ function (module, exports, __webpack_require__) {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -32,6 +32,7 @@
       });
       const _interop_require_default = __webpack_require__(1351);
       const _interop_require_wildcard = __webpack_require__(5815);
+      const _jsxruntime = __webpack_require__(1527);
       const _react = /*#__PURE__*/ _interop_require_wildcard._(
         __webpack_require__(959)
       );
@@ -39,15 +40,15 @@
         __webpack_require__(422)
       );
       const _head = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(4684)
+        __webpack_require__(2272)
       );
-      const _getimgprops = __webpack_require__(8622);
-      const _imageconfig = __webpack_require__(2584);
-      const _imageconfigcontextsharedruntime = __webpack_require__(8266);
-      const _warnonce = __webpack_require__(7604);
-      const _routercontextsharedruntime = __webpack_require__(2274);
+      const _getimgprops = __webpack_require__(2530);
+      const _imageconfig = __webpack_require__(4899);
+      const _imageconfigcontextsharedruntime = __webpack_require__(9292);
+      const _warnonce = __webpack_require__(4213);
+      const _routercontextsharedruntime = __webpack_require__(7084);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(8293)
+        __webpack_require__(7443)
       );
       // This is replaced by webpack define plugin
       const configEnv = {
@@ -168,7 +169,7 @@
             onError,
             ...rest
           } = param;
-          return /*#__PURE__*/ _react.default.createElement("img", {
+          return /*#__PURE__*/ (0, _jsxruntime.jsx)("img", {
             ...rest,
             ...getDynamicProps(fetchPriority),
             // It's intended to keep `loading` before `src` because React updates
@@ -273,25 +274,25 @@
           _reactdom.default.preload(imgAttributes.src, opts);
           return null;
         }
-        return /*#__PURE__*/ _react.default.createElement(
-          _head.default,
-          null,
-          /*#__PURE__*/ _react.default.createElement("link", {
-            key:
-              "__nimg-" +
+        return /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {
+          children: /*#__PURE__*/ (0, _jsxruntime.jsx)(
+            "link",
+            {
+              rel: "preload",
+              // Note how we omit the `href` attribute, as it would only be relevant
+              // for browsers that do not support `imagesrcset`, and in those cases
+              // it would cause the incorrect image to be preloaded.
+              //
+              // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset
+              href: imgAttributes.srcSet ? undefined : imgAttributes.src,
+              ...opts,
+            },
+            "__nimg-" +
               imgAttributes.src +
               imgAttributes.srcSet +
-              imgAttributes.sizes,
-            rel: "preload",
-            // Note how we omit the `href` attribute, as it would only be relevant
-            // for browsers that do not support `imagesrcset`, and in those cases
-            // it would cause the incorrect image to be preloaded.
-            //
-            // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset
-            href: imgAttributes.srcSet ? undefined : imgAttributes.src,
-            ...opts,
-          })
-        );
+              imgAttributes.sizes
+          ),
+        });
       }
       const Image = /*#__PURE__*/ (0, _react.forwardRef)(
         (props, forwardedRef) => {
@@ -334,27 +335,27 @@
             blurComplete,
             showAltText,
           });
-          return /*#__PURE__*/ _react.default.createElement(
-            _react.default.Fragment,
-            null,
-            /*#__PURE__*/ _react.default.createElement(ImageElement, {
-              ...imgAttributes,
-              unoptimized: imgMeta.unoptimized,
-              placeholder: imgMeta.placeholder,
-              fill: imgMeta.fill,
-              onLoadRef: onLoadRef,
-              onLoadingCompleteRef: onLoadingCompleteRef,
-              setBlurComplete: setBlurComplete,
-              setShowAltText: setShowAltText,
-              ref: forwardedRef,
-            }),
-            imgMeta.priority
-              ? /*#__PURE__*/ _react.default.createElement(ImagePreload, {
-                  isAppRouter: isAppRouter,
-                  imgAttributes: imgAttributes,
-                })
-              : null
-          );
+          return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
+            children: [
+              /*#__PURE__*/ (0, _jsxruntime.jsx)(ImageElement, {
+                ...imgAttributes,
+                unoptimized: imgMeta.unoptimized,
+                placeholder: imgMeta.placeholder,
+                fill: imgMeta.fill,
+                onLoadRef: onLoadRef,
+                onLoadingCompleteRef: onLoadingCompleteRef,
+                setBlurComplete: setBlurComplete,
+                setShowAltText: setShowAltText,
+                ref: forwardedRef,
+              }),
+              imgMeta.priority
+                ? /*#__PURE__*/ (0, _jsxruntime.jsx)(ImagePreload, {
+                    isAppRouter: isAppRouter,
+                    imgAttributes: imgAttributes,
+                  })
+                : null,
+            ],
+          });
         }
       );
       if (
@@ -372,7 +373,7 @@
       /***/
     },
 
-    /***/ 8622: /***/ function (
+    /***/ 2530: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -388,9 +389,9 @@
           return getImgProps;
         },
       });
-      const _warnonce = __webpack_require__(7604);
-      const _imageblursvg = __webpack_require__(6528);
-      const _imageconfig = __webpack_require__(2584);
+      const _warnonce = __webpack_require__(4213);
+      const _imageblursvg = __webpack_require__(3139);
+      const _imageconfig = __webpack_require__(4899);
       const VALID_LOADING_VALUES =
         /* unused pure expression or super */ null && [
           "lazy",
@@ -759,7 +760,7 @@
       /***/
     },
 
-    /***/ 6528: /***/ function (__unused_webpack_module, exports) {
+    /***/ 3139: /***/ function (__unused_webpack_module, exports) {
       "use strict";
       /**
        * A shared function, used on both client and server, to generate a SVG blur placeholder.
@@ -814,7 +815,7 @@
       /***/
     },
 
-    /***/ 1406: /***/ function (
+    /***/ 3067: /***/ function (
       __unused_webpack_module,
       exports,
       __webpack_require__
@@ -841,11 +842,11 @@
         },
       });
       const _interop_require_default = __webpack_require__(1351);
-      const _getimgprops = __webpack_require__(8622);
-      const _warnonce = __webpack_require__(7604);
-      const _imagecomponent = __webpack_require__(7534);
+      const _getimgprops = __webpack_require__(2530);
+      const _warnonce = __webpack_require__(4213);
+      const _imagecomponent = __webpack_require__(2353);
       const _imageloader = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(8293)
+        __webpack_require__(7443)
       );
       const unstable_getImgProps = (imgProps) => {
         (0, _warnonce.warnOnce)(
@@ -877,7 +878,7 @@
       /***/
     },
 
-    /***/ 8293: /***/ function (__unused_webpack_module, exports) {
+    /***/ 7443: /***/ function (__unused_webpack_module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -912,7 +913,7 @@
       /***/
     },
 
-    /***/ 7459: /***/ function (
+    /***/ 3697: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -933,8 +934,8 @@
 
       // EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js
       var jsx_runtime = __webpack_require__(1527);
-      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+main-repo+packages+next+next-packed.tgz_react-dom@18.2.0_react@18.2.0/node_modules/next/image.js
-      var next_image = __webpack_require__(1577);
+      // EXTERNAL MODULE: ./node_modules/.pnpm/file+..+diff-repo+packages+next+next-packed.tgz_react-dom@18.2.0_react@18.2.0/node_modules/next/image.js
+      var next_image = __webpack_require__(73);
       var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // CONCATENATED MODULE: ./pages/nextjs.png
       /* harmony default export */ var nextjs = {
         src: "/_next/static/media/nextjs.cae0b805.png",
@@ -964,12 +965,12 @@
       /***/
     },
 
-    /***/ 1577: /***/ function (
+    /***/ 73: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(1406);
+      module.exports = __webpack_require__(3067);
 
       /***/
     },
@@ -979,8 +980,8 @@
     /******/ var __webpack_exec__ = function (moduleId) {
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
-    /******/ __webpack_require__.O(0, [774, 888, 179], function () {
-      return __webpack_exec__(1552);
+    /******/ __webpack_require__.O(0, [888, 774, 179], function () {
+      return __webpack_exec__(4070);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [644],
   {
-    /***/ 5310: /***/ function (
+    /***/ 8959: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/link",
         function () {
-          return __webpack_require__(6108);
+          return __webpack_require__(3071);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 5060: /***/ function (module, exports) {
+    /***/ 6589: /***/ function (module, exports) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -100,7 +100,7 @@
       /***/
     },
 
-    /***/ 514: /***/ function (module, exports, __webpack_require__) {
+    /***/ 8428: /***/ function (module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -112,7 +112,7 @@
           return getDomainLocale;
         },
       });
-      const _normalizetrailingslash = __webpack_require__(1638);
+      const _normalizetrailingslash = __webpack_require__(6465);
       const basePath =
         /* unused pure expression or super */ null && (false || "");
       function getDomainLocale(path, locale, locales, domainLocales) {
@@ -136,7 +136,7 @@
       /***/
     },
 
-    /***/ 8949: /***/ function (module, exports, __webpack_require__) {
+    /***/ 1706: /***/ function (module, exports, __webpack_require__) {
       "use strict";
       /* __next_internal_client_entry_do_not_use__  cjs */
       Object.defineProperty(exports, "__esModule", {
@@ -149,20 +149,21 @@
         },
       });
       const _interop_require_default = __webpack_require__(1351);
+      const _jsxruntime = __webpack_require__(1527);
       const _react = /*#__PURE__*/ _interop_require_default._(
         __webpack_require__(959)
       );
-      const _resolvehref = __webpack_require__(7515);
-      const _islocalurl = __webpack_require__(9517);
-      const _formaturl = __webpack_require__(2797);
-      const _utils = __webpack_require__(7001);
-      const _addlocale = __webpack_require__(2123);
-      const _routercontextsharedruntime = __webpack_require__(2274);
-      const _approutercontextsharedruntime = __webpack_require__(5294);
-      const _useintersection = __webpack_require__(9242);
-      const _getdomainlocale = __webpack_require__(514);
-      const _addbasepath = __webpack_require__(4862);
-      const _routerreducertypes = __webpack_require__(5060);
+      const _resolvehref = __webpack_require__(1221);
+      const _islocalurl = __webpack_require__(244);
+      const _formaturl = __webpack_require__(6076);
+      const _utils = __webpack_require__(266);
+      const _addlocale = __webpack_require__(8057);
+      const _routercontextsharedruntime = __webpack_require__(7084);
+      const _approutercontextsharedruntime = __webpack_require__(5171);
+      const _useintersection = __webpack_require__(9058);
+      const _getdomainlocale = __webpack_require__(8428);
+      const _addbasepath = __webpack_require__(8261);
+      const _routerreducertypes = __webpack_require__(6589);
       const prefetched = new Set();
       function prefetch(router, href, as, options, appOptions, isAppRouter) {
         if (false) {
@@ -288,11 +289,9 @@
             legacyBehavior &&
             (typeof children === "string" || typeof children === "number")
           ) {
-            children = /*#__PURE__*/ _react.default.createElement(
-              "a",
-              null,
-              children
-            );
+            children = /*#__PURE__*/ (0, _jsxruntime.jsx)("a", {
+              children: children,
+            });
           }
           const pagesRouter = _react.default.useContext(
             _routercontextsharedruntime.RouterContext
@@ -552,14 +551,11 @@
           }
           return legacyBehavior
             ? /*#__PURE__*/ _react.default.cloneElement(child, childProps)
-            : /*#__PURE__*/ _react.default.createElement(
-                "a",
-                {
-                  ...restProps,
-                  ...childProps,
-                },
-                children
-              );
+            : /*#__PURE__*/ (0, _jsxruntime.jsx)("a", {
+                ...restProps,
+                ...childProps,
+                children: children,
+              });
         }
       );
       const _default = Link;
@@ -578,7 +574,7 @@
       /***/
     },
 
-    /***/ 9242: /***/ function (module, exports, __webpack_require__) {
+    /***/ 9058: /***/ function (module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -591,7 +587,7 @@
         },
       });
       const _react = __webpack_require__(959);
-      const _requestidlecallback = __webpack_require__(7495);
+      const _requestidlecallback = __webpack_require__(9265);
       const hasIntersectionObserver =
         typeof IntersectionObserver === "function";
       const observers = new Map();
@@ -704,7 +700,7 @@
       /***/
     },
 
-    /***/ 6108: /***/ function (
+    /***/ 3071: /***/ function (
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -720,7 +716,7 @@
       /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
         __webpack_require__(1527);
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
-        __webpack_require__(3639);
+        __webpack_require__(2075);
       /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
         /*#__PURE__*/ __webpack_require__.n(
           next_link__WEBPACK_IMPORTED_MODULE_1__
@@ -751,12 +747,12 @@
       /***/
     },
 
-    /***/ 3639: /***/ function (
+    /***/ 2075: /***/ function (
       module,
       __unused_webpack_exports,
       __webpack_require__
     ) {
-      module.exports = __webpack_require__(8949);
+      module.exports = __webpack_require__(1706);
 
       /***/
     },
@@ -766,8 +762,8 @@
     /******/ var __webpack_exec__ = function (moduleId) {
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
-    /******/ __webpack_require__.O(0, [774, 888, 179], function () {
-      return __webpack_exec__(5310);
+    /******/ __webpack_require__.O(0, [888, 774, 179], function () {
+      return __webpack_exec__(8959);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for 170-HASH.js

Diff too large to display

Diff for 3f784ff6-HASH.js

Diff too large to display

Diff for _not-found-4..8d5a690ee.js
@@ -1,7 +1,7 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [165],
   {
-    /***/ 1729: /***/ function (
+    /***/ 5194: /***/ function (
       __unused_webpack_module,
       __unused_webpack_exports,
       __webpack_require__
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/_not-found",
         function () {
-          return __webpack_require__(7200);
+          return __webpack_require__(3514);
         },
       ]);
       if (false) {
@@ -18,7 +18,7 @@
       /***/
     },
 
-    /***/ 7200: /***/ function (module, exports, __webpack_require__) {
+    /***/ 3514: /***/ function (module, exports, __webpack_require__) {
       "use strict";
 
       Object.defineProperty(exports, "__esModule", {
@@ -30,9 +30,10 @@
           return NotFound;
         },
       });
-      const _interop_require_default = __webpack_require__(7295);
+      const _interop_require_default = __webpack_require__(4255);
+      const _jsxruntime = __webpack_require__(1302);
       const _react = /*#__PURE__*/ _interop_require_default._(
-        __webpack_require__(8288)
+        __webpack_require__(9473)
       );
       const styles = {
         error: {
@@ -66,25 +67,18 @@
         },
       };
       function NotFound() {
-        return /*#__PURE__*/ _react.default.createElement(
-          _react.default.Fragment,
-          null,
-          /*#__PURE__*/ _react.default.createElement(
-            "title",
-            null,
-            "404: This page could not be found."
-          ),
-          /*#__PURE__*/ _react.default.createElement(
-            "div",
-            {
+        return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
+          children: [
+            /*#__PURE__*/ (0, _jsxruntime.jsx)("title", {
+              children: "404: This page could not be found.",
+            }),
+            /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
               style: styles.error,
-            },
-            /*#__PURE__*/ _react.default.createElement(
-              "div",
-              null,
-              /*#__PURE__*/ _react.default.createElement("style", {
-                dangerouslySetInnerHTML: {
-                  /* Minified CSS from
+              children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
+                children: [
+                  /*#__PURE__*/ (0, _jsxruntime.jsx)("style", {
+                    dangerouslySetInnerHTML: {
+                      /* Minified CSS from
                 body { margin: 0; color: #000; background: #fff; }
                 .next-error-h1 {
                   border-right: 1px solid rgba(0, 0, 0, .3);
@@ -97,33 +91,26 @@
                   }
                 }
               */ __html:
-                    "body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}",
-                },
+                        "body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}",
+                    },
+                  }),
+                  /*#__PURE__*/ (0, _jsxruntime.jsx)("h1", {
+                    className: "next-error-h1",
+                    style: styles.h1,
+                    children: "404",
+                  }),
+                  /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
+                    style: styles.desc,
+                    children: /*#__PURE__*/ (0, _jsxruntime.jsx)("h2", {
+                      style: styles.h2,
+                      children: "This page could not be found.",
+                    }),
+                  }),
+                ],
               }),
-              /*#__PURE__*/ _react.default.createElement(
-                "h1",
-                {
-                  className: "next-error-h1",
-                  style: styles.h1,
-                },
-                "404"
-              ),
-              /*#__PURE__*/ _react.default.createElement(
-                "div",
-                {
-                  style: styles.desc,
-                },
-                /*#__PURE__*/ _react.default.createElement(
-                  "h2",
-                  {
-                    style: styles.h2,
-                  },
-                  "This page could not be found."
-                )
-              )
-            )
-          )
-        );
+            }),
+          ],
+        });
       }
       if (
         (typeof exports.default === "function" ||
@@ -145,8 +132,8 @@
     /******/ var __webpack_exec__ = function (moduleId) {
       return __webpack_require__((__webpack_require__.s = moduleId));
     };
-    /******/ __webpack_require__.O(0, [904, 170, 744], function () {
-      return __webpack_exec__(1729);
+    /******/ __webpack_require__.O(0, [658, 724, 744], function () {
+      return __webpack_exec__(5194);
     });
     /******/ var __webpack_exports__ = __webpack_require__.O();
     /******/ _N_E = __webpack_exports__;
Diff for main-HASH.js

Diff too large to display

Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-exp..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page-tur..time.prod.js

Diff too large to display

Diff for app-page.runtime.dev.js
failed to diff
Diff for app-page.runtime.prod.js

Diff too large to display

Diff for app-route-ex..ntime.dev.js

Diff too large to display

Diff for app-route-ex..time.prod.js

Diff too large to display

Diff for app-route-tu..time.prod.js

Diff too large to display

Diff for app-route-tu..time.prod.js

Diff too large to display

Diff for app-route.runtime.dev.js

Diff too large to display

Diff for app-route.ru..time.prod.js

Diff too large to display

Diff for pages-api-tu..time.prod.js
@@ -17,5 +17,5 @@
  * Copyright(c) 2012 TJ Holowaychuk
  * Copyright(c) 2016-2017 Douglas Christopher Wilson
  * MIT Licensed
- */var r=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function t(e){var r=e&&Date.parse(e);return"number"==typeof r?r:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&r.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var r=0,t=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===r&&(n=r=o+1);break;case 44:t.push(e.substring(n,r)),n=r=o+1;break;default:r=o+1}return t.push(e.substring(n,r)),t}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(t(c)<=t(o)))return!1}return!0}}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{r[e](a,a.exports,n),i=!1}finally{i&&delete t[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,r,t)=>{"use strict";t.r(r),t.d(r,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=t.n(n);let a="aes-256-gcm";function i(e,r){let t=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,t),d=Buffer.concat([s.update(r,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,t,p,d]).toString("hex")}function s(e,r){let t=Buffer.from(r,"hex"),n=t.slice(0,64),i=t.slice(64,80),s=t.slice(80,96),d=t.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";t.r(n),t.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:r}){this.userland=e,this.definition=r}}var r,o,a,i,s,d,p,u,l,c,f,h=t("./dist/compiled/bytes/index.js"),v=t.n(h);let g=e=>{let r=e.length,t=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;t<r;)o^=e.charCodeAt(t++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,r=!1)=>(r?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=t("./dist/compiled/fresh/index.js"),x=t.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class _{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}class T extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new T}}class A extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return _.get(r,t,n);let o=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return _.get(r,a,n)},set(r,t,n,o){if("symbol"==typeof t)return _.set(r,t,n,o);let a=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return _.set(r,i??t,n,o)},has(r,t){if("symbol"==typeof t)return _.has(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&_.has(r,o)},deleteProperty(r,t){if("symbol"==typeof t)return _.deleteProperty(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||_.deleteProperty(r,o)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return T.callable;default:return _.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new A(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",k=Symbol(H),E=Symbol(N);function M(e,r={}){if(E in e)return e;let{serialize:n}=t("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0})]),Object.defineProperty(e,E,{value:!0,enumerable:!1}),e}class O extends Error{constructor(e,r){super(r),this.statusCode=e}}function P(e,r,t){e.statusCode=r,e.statusMessage=t,e.end(t)}function L({req:e},r,t){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,r,{...n,get:()=>{let n=t();return Object.defineProperty(e,r,{...o,value:n}),n},set:t=>{Object.defineProperty(e,r,{...o,value:t})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var q=t("./dist/compiled/@edge-runtime/cookies/index.js"),$=t("./dist/compiled/content-type/index.js");async function I(e,r){let n,o;try{n=(0,$.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,$.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=t("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:r})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new O(413,`Body exceeded ${r} limit`);throw new O(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new O(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=t("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,r,t,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...r.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(t.headers))a.includes(e)&&(o[e]=t.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${t.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&r.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:r});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(r){throw Error(`Failed to revalidate ${e}: ${j(r)?r.message:r}`)}}async function K(e,r,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){r.statusCode=404,r.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0;null==(c=i.api)||c.externalResolver,L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:r}=t("./dist/compiled/cookie/index.js");return r(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,r,n){var o,a;let i;if(n&&function(e,r){let t=A.from(e.headers),n=t.get(w),o=n===r.previewModeId,a=t.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(k in e)return e[k];let s=A.from(e.headers),d=new q.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let r={};return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return M(r),!1;try{let e=t("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return M(r),!1}let{decryptWithSecret:l}=t("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let r=JSON.parse(c);return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}catch{return!1}})(e,r,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let y=0,b=g&&"boolean"!=typeof g?v().parse(g):4194304,R=r.write,j=r.end;r.write=(...e)=>(y+=Buffer.byteLength(e[0]||""),R.apply(r,e)),r.end=(...t)=>(t.length&&"function"!=typeof t[0]&&(y+=Buffer.byteLength(t[0]||"")),g&&y>=b&&console.warn(`API response for ${e.url} exceeds ${v().format(b)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),j.apply(r,t)),r.status=e=>(r.statusCode=e,r),r.send=t=>(function(e,r,t){if(null==t){r.end();return}if(204===r.statusCode||304===r.statusCode){r.removeHeader("Content-Type"),r.removeHeader("Content-Length"),r.removeHeader("Transfer-Encoding"),r.end();return}let n=r.getHeader("Content-Type");if(t instanceof C.Stream){n||r.setHeader("Content-Type","application/octet-stream"),t.pipe(r);return}let o=["object","number","boolean"].includes(typeof t),a=o?JSON.stringify(t):t,i=m(a);if(i&&r.setHeader("ETag",i),!x()(e.headers,{etag:i})||(r.statusCode=304,r.end(),0)){if(Buffer.isBuffer(t)){n||r.setHeader("Content-Type","application/octet-stream"),r.setHeader("Content-Length",t.length),r.end(t);return}o&&r.setHeader("Content-Type","application/json; charset=utf-8"),r.setHeader("Content-Length",Buffer.byteLength(a)),r.end(a)}})(e,r,t),r.json=e=>{r.setHeader("Content-Type","application/json; charset=utf-8"),r.send(JSON.stringify(e))},r.redirect=(e,t)=>(function(e,r,t){if("string"==typeof r&&(t=r,r=307),"number"!=typeof r||"string"!=typeof t)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(r,{Location:t}),e.write(t),e.end(),e})(r,e,t),r.setDraftMode=(e={enable:!0})=>(function(e,r){if(!D(r.previewModeId))throw Error("invariant: invalid previewModeId");let n=r.enable?void 0:new Date(0),{serialize:o}=t("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,r.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:n})]),e})(r,Object.assign({},a,e)),r.setPreviewData=(e,n={})=>(function(e,r,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=t("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=t("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(r))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=t("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(r,e,Object.assign({},a,n)),r.clearPreviewData=(e={})=>M(r,e),r.revalidate=(r,t)=>z(r,t||{},e,a);let _=o.default||o;null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d),await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,r))}catch(e){if(e instanceof O)P(r,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;P(r,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,r,t){await K(e,r,t.query,this.userland,{...t.previewProps,revalidate:t.revalidate,trustHostHeader:t.trustHostHeader,allowedRevalidateHeaderKeys:t.allowedRevalidateHeaderKeys,hostname:t.hostname},t.minimalMode,t.dev,t.page)}}let F=U})(),module.exports=n})();
+ */var r=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function t(e){var r=e&&Date.parse(e);return"number"==typeof r?r:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&r.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var r=0,t=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===r&&(n=r=o+1);break;case 44:t.push(e.substring(n,r)),n=r=o+1;break;default:r=o+1}return t.push(e.substring(n,r)),t}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(t(c)<=t(o)))return!1}return!0}}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{r[e](a,a.exports,n),i=!1}finally{i&&delete t[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,r,t)=>{"use strict";t.r(r),t.d(r,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=t.n(n);let a="aes-256-gcm";function i(e,r){let t=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,t),d=Buffer.concat([s.update(r,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,t,p,d]).toString("hex")}function s(e,r){let t=Buffer.from(r,"hex"),n=t.slice(0,64),i=t.slice(64,80),s=t.slice(80,96),d=t.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";t.r(n),t.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:r}){this.userland=e,this.definition=r}}var r,o,a,i,s,d,p,u,l,c,f,h=t("./dist/compiled/bytes/index.js"),v=t.n(h);let g=e=>{let r=e.length,t=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;t<r;)o^=e.charCodeAt(t++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,r=!1)=>(r?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=t("./dist/compiled/fresh/index.js"),x=t.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser,R.shared]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class _{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}class T extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new T}}class A extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return _.get(r,t,n);let o=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return _.get(r,a,n)},set(r,t,n,o){if("symbol"==typeof t)return _.set(r,t,n,o);let a=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return _.set(r,i??t,n,o)},has(r,t){if("symbol"==typeof t)return _.has(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&_.has(r,o)},deleteProperty(r,t){if("symbol"==typeof t)return _.deleteProperty(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||_.deleteProperty(r,o)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return T.callable;default:return _.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new A(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",k=Symbol(H),E=Symbol(N);function M(e,r={}){if(E in e)return e;let{serialize:n}=t("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0})]),Object.defineProperty(e,E,{value:!0,enumerable:!1}),e}class O extends Error{constructor(e,r){super(r),this.statusCode=e}}function P(e,r,t){e.statusCode=r,e.statusMessage=t,e.end(t)}function L({req:e},r,t){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,r,{...n,get:()=>{let n=t();return Object.defineProperty(e,r,{...o,value:n}),n},set:t=>{Object.defineProperty(e,r,{...o,value:t})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var q=t("./dist/compiled/@edge-runtime/cookies/index.js"),$=t("./dist/compiled/content-type/index.js");async function I(e,r){let n,o;try{n=(0,$.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,$.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=t("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:r})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new O(413,`Body exceeded ${r} limit`);throw new O(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new O(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=t("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,r,t,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...r.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(t.headers))a.includes(e)&&(o[e]=t.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${t.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&r.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:r});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(r){throw Error(`Failed to revalidate ${e}: ${j(r)?r.message:r}`)}}async function K(e,r,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){r.statusCode=404,r.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0;null==(c=i.api)||c.externalResolver,L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:r}=t("./dist/compiled/cookie/index.js");return r(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,r,n){var o,a;let i;if(n&&function(e,r){let t=A.from(e.headers),n=t.get(w),o=n===r.previewModeId,a=t.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(k in e)return e[k];let s=A.from(e.headers),d=new q.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let r={};return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return M(r),!1;try{let e=t("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return M(r),!1}let{decryptWithSecret:l}=t("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let r=JSON.parse(c);return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}catch{return!1}})(e,r,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let y=0,b=g&&"boolean"!=typeof g?v().parse(g):4194304,R=r.write,j=r.end;r.write=(...e)=>(y+=Buffer.byteLength(e[0]||""),R.apply(r,e)),r.end=(...t)=>(t.length&&"function"!=typeof t[0]&&(y+=Buffer.byteLength(t[0]||"")),g&&y>=b&&console.warn(`API response for ${e.url} exceeds ${v().format(b)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),j.apply(r,t)),r.status=e=>(r.statusCode=e,r),r.send=t=>(function(e,r,t){if(null==t){r.end();return}if(204===r.statusCode||304===r.statusCode){r.removeHeader("Content-Type"),r.removeHeader("Content-Length"),r.removeHeader("Transfer-Encoding"),r.end();return}let n=r.getHeader("Content-Type");if(t instanceof C.Stream){n||r.setHeader("Content-Type","application/octet-stream"),t.pipe(r);return}let o=["object","number","boolean"].includes(typeof t),a=o?JSON.stringify(t):t,i=m(a);if(i&&r.setHeader("ETag",i),!x()(e.headers,{etag:i})||(r.statusCode=304,r.end(),0)){if(Buffer.isBuffer(t)){n||r.setHeader("Content-Type","application/octet-stream"),r.setHeader("Content-Length",t.length),r.end(t);return}o&&r.setHeader("Content-Type","application/json; charset=utf-8"),r.setHeader("Content-Length",Buffer.byteLength(a)),r.end(a)}})(e,r,t),r.json=e=>{r.setHeader("Content-Type","application/json; charset=utf-8"),r.send(JSON.stringify(e))},r.redirect=(e,t)=>(function(e,r,t){if("string"==typeof r&&(t=r,r=307),"number"!=typeof r||"string"!=typeof t)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(r,{Location:t}),e.write(t),e.end(),e})(r,e,t),r.setDraftMode=(e={enable:!0})=>(function(e,r){if(!D(r.previewModeId))throw Error("invariant: invalid previewModeId");let n=r.enable?void 0:new Date(0),{serialize:o}=t("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,r.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:n})]),e})(r,Object.assign({},a,e)),r.setPreviewData=(e,n={})=>(function(e,r,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=t("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=t("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(r))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=t("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(r,e,Object.assign({},a,n)),r.clearPreviewData=(e={})=>M(r,e),r.revalidate=(r,t)=>z(r,t||{},e,a);let _=o.default||o;null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d),await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,r))}catch(e){if(e instanceof O)P(r,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;P(r,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,r,t){await K(e,r,t.query,this.userland,{...t.previewProps,revalidate:t.revalidate,trustHostHeader:t.trustHostHeader,allowedRevalidateHeaderKeys:t.allowedRevalidateHeaderKeys,hostname:t.hostname},t.minimalMode,t.dev,t.page)}}let F=U})(),module.exports=n})();
 //# sourceMappingURL=pages-api-turbo.runtime.prod.js.map
\ No newline at end of file
Diff for pages-api.runtime.dev.js
@@ -17,6 +17,6 @@
  * Copyright(c) 2012 TJ Holowaychuk
  * Copyright(c) 2016-2017 Douglas Christopher Wilson
  * MIT Licensed
- */var t=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function r(e){var t=e&&Date.parse(e);return"number"==typeof t?t:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&t.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var t=0,r=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===t&&(n=t=o+1);break;case 44:r.push(e.substring(n,t)),n=t=o+1;break;default:t=o+1}return r.push(e.substring(n,t)),r}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(r(c)<=r(o)))return!1}return!0}}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={exports:{}},i=!0;try{t[e](a,a.exports,n),i=!1}finally{i&&delete r[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,t,r)=>{"use strict";r.r(t),r.d(t,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=r.n(n);let a="aes-256-gcm";function i(e,t){let r=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,r),d=Buffer.concat([s.update(t,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,r,p,d]).toString("hex")}function s(e,t){let r=Buffer.from(t,"hex"),n=r.slice(0,64),i=r.slice(64,80),s=r.slice(80,96),d=r.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:t}){this.userland=e,this.definition=t}}var t,o,a,i,s,d,p,u,l,c,f,h=r("./dist/compiled/bytes/index.js"),v=r.n(h);let g=e=>{let t=e.length,r=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;r<t;)o^=e.charCodeAt(r++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,t=!1)=>(t?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=r("./dist/compiled/fresh/index.js"),x=r.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class A{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}class _ extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new _}}class T extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return A.get(t,r,n);let o=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return A.get(t,a,n)},set(t,r,n,o){if("symbol"==typeof r)return A.set(t,r,n,o);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return A.set(t,i??r,n,o)},has(t,r){if("symbol"==typeof r)return A.has(t,r);let n=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&A.has(t,o)},deleteProperty(t,r){if("symbol"==typeof r)return A.deleteProperty(t,r);let n=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||A.deleteProperty(t,o)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return _.callable;default:return A.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new T(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",P=Symbol(H),k=Symbol(N);function E(e,t={}){if(k in e)return e;let{serialize:n}=r("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==t.path?{path:t.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==t.path?{path:t.path}:void 0})]),Object.defineProperty(e,k,{value:!0,enumerable:!1}),e}class M extends Error{constructor(e,t){super(t),this.statusCode=e}}function O(e,t,r){e.statusCode=t,e.statusMessage=r,e.end(r)}function L({req:e},t,r){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,t,{...n,get:()=>{let n=r();return Object.defineProperty(e,t,{...o,value:n}),n},set:r=>{Object.defineProperty(e,t,{...o,value:r})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(t||(t={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var $=r("./dist/compiled/@edge-runtime/cookies/index.js"),q=r("./dist/compiled/content-type/index.js");async function I(e,t){let n,o;try{n=(0,q.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,q.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=r("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:t})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new M(413,`Body exceeded ${t} limit`);throw new M(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new M(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=r("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,t,r,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...t.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(r.headers))a.includes(e)&&(o[e]=r.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${r.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&t.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:t});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(t){throw Error(`Failed to revalidate ${e}: ${j(t)?t.message:t}`)}}async function K(e,t,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){t.statusCode=404,t.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0,y=(null==(c=i.api)?void 0:c.externalResolver)||!1;L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,t,n){var o,a;let i;if(n&&function(e,t){let r=T.from(e.headers),n=r.get(w),o=n===t.previewModeId,a=r.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(P in e)return e[P];let s=T.from(e.headers),d=new $.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let t={};return Object.defineProperty(e,P,{value:t,enumerable:!1}),t}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return E(t),!1;try{let e=r("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return E(t),!1}let{decryptWithSecret:l}=r("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let t=JSON.parse(c);return Object.defineProperty(e,P,{value:t,enumerable:!1}),t}catch{return!1}})(e,t,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let b=0,R=g&&"boolean"!=typeof g?v().parse(g):4194304,j=t.write,A=t.end;t.write=(...e)=>(b+=Buffer.byteLength(e[0]||""),j.apply(t,e)),t.end=(...r)=>(r.length&&"function"!=typeof r[0]&&(b+=Buffer.byteLength(r[0]||"")),g&&b>=R&&console.warn(`API response for ${e.url} exceeds ${v().format(R)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),A.apply(t,r)),t.status=e=>(t.statusCode=e,t),t.send=r=>(function(e,t,r){if(null==r){t.end();return}if(204===t.statusCode||304===t.statusCode){t.removeHeader("Content-Type"),t.removeHeader("Content-Length"),t.removeHeader("Transfer-Encoding"),r&&console.warn(`A body was attempted to be set with a 204 statusCode for ${e.url}, this is invalid and the body was ignored.
+ */var t=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function r(e){var t=e&&Date.parse(e);return"number"==typeof t?t:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&t.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var t=0,r=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===t&&(n=t=o+1);break;case 44:r.push(e.substring(n,t)),n=t=o+1;break;default:t=o+1}return r.push(e.substring(n,t)),r}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(r(c)<=r(o)))return!1}return!0}}},r={};function n(e){var o=r[e];if(void 0!==o)return o.exports;var a=r[e]={exports:{}},i=!0;try{t[e](a,a.exports,n),i=!1}finally{i&&delete r[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,t,r)=>{"use strict";r.r(t),r.d(t,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=r.n(n);let a="aes-256-gcm";function i(e,t){let r=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,r),d=Buffer.concat([s.update(t,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,r,p,d]).toString("hex")}function s(e,t){let r=Buffer.from(t,"hex"),n=r.slice(0,64),i=r.slice(64,80),s=r.slice(80,96),d=r.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n),r.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:t}){this.userland=e,this.definition=t}}var t,o,a,i,s,d,p,u,l,c,f,h=r("./dist/compiled/bytes/index.js"),v=r.n(h);let g=e=>{let t=e.length,r=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;r<t;)o^=e.charCodeAt(r++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,t=!1)=>(t?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=r("./dist/compiled/fresh/index.js"),x=r.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser,R.shared]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class A{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}class _ extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new _}}class T extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return A.get(t,r,n);let o=r.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return A.get(t,a,n)},set(t,r,n,o){if("symbol"==typeof r)return A.set(t,r,n,o);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return A.set(t,i??r,n,o)},has(t,r){if("symbol"==typeof r)return A.has(t,r);let n=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&A.has(t,o)},deleteProperty(t,r){if("symbol"==typeof r)return A.deleteProperty(t,r);let n=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||A.deleteProperty(t,o)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return _.callable;default:return A.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new T(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",P=Symbol(H),k=Symbol(N);function E(e,t={}){if(k in e)return e;let{serialize:n}=r("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==t.path?{path:t.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==t.path?{path:t.path}:void 0})]),Object.defineProperty(e,k,{value:!0,enumerable:!1}),e}class M extends Error{constructor(e,t){super(t),this.statusCode=e}}function O(e,t,r){e.statusCode=t,e.statusMessage=r,e.end(r)}function L({req:e},t,r){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,t,{...n,get:()=>{let n=r();return Object.defineProperty(e,t,{...o,value:n}),n},set:r=>{Object.defineProperty(e,t,{...o,value:r})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(t||(t={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var $=r("./dist/compiled/@edge-runtime/cookies/index.js"),q=r("./dist/compiled/content-type/index.js");async function I(e,t){let n,o;try{n=(0,q.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,q.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=r("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:t})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new M(413,`Body exceeded ${t} limit`);throw new M(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new M(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=r("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,t,r,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...t.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(r.headers))a.includes(e)&&(o[e]=r.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${r.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&t.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:t});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(t){throw Error(`Failed to revalidate ${e}: ${j(t)?t.message:t}`)}}async function K(e,t,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){t.statusCode=404,t.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0,y=(null==(c=i.api)?void 0:c.externalResolver)||!1;L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:t}=r("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,t,n){var o,a;let i;if(n&&function(e,t){let r=T.from(e.headers),n=r.get(w),o=n===t.previewModeId,a=r.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(P in e)return e[P];let s=T.from(e.headers),d=new $.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let t={};return Object.defineProperty(e,P,{value:t,enumerable:!1}),t}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return E(t),!1;try{let e=r("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return E(t),!1}let{decryptWithSecret:l}=r("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let t=JSON.parse(c);return Object.defineProperty(e,P,{value:t,enumerable:!1}),t}catch{return!1}})(e,t,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let b=0,R=g&&"boolean"!=typeof g?v().parse(g):4194304,j=t.write,A=t.end;t.write=(...e)=>(b+=Buffer.byteLength(e[0]||""),j.apply(t,e)),t.end=(...r)=>(r.length&&"function"!=typeof r[0]&&(b+=Buffer.byteLength(r[0]||"")),g&&b>=R&&console.warn(`API response for ${e.url} exceeds ${v().format(R)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),A.apply(t,r)),t.status=e=>(t.statusCode=e,t),t.send=r=>(function(e,t,r){if(null==r){t.end();return}if(204===t.statusCode||304===t.statusCode){t.removeHeader("Content-Type"),t.removeHeader("Content-Length"),t.removeHeader("Transfer-Encoding"),r&&console.warn(`A body was attempted to be set with a 204 statusCode for ${e.url}, this is invalid and the body was ignored.
 See more info here https://nextjs.org/docs/messages/invalid-api-status-body`),t.end();return}let n=t.getHeader("Content-Type");if(r instanceof C.Stream){n||t.setHeader("Content-Type","application/octet-stream"),r.pipe(t);return}let o=["object","number","boolean"].includes(typeof r),a=o?JSON.stringify(r):r,i=m(a);if(i&&t.setHeader("ETag",i),!x()(e.headers,{etag:i})||(t.statusCode=304,t.end(),0)){if(Buffer.isBuffer(r)){n||t.setHeader("Content-Type","application/octet-stream"),t.setHeader("Content-Length",r.length),t.end(r);return}o&&t.setHeader("Content-Type","application/json; charset=utf-8"),t.setHeader("Content-Length",Buffer.byteLength(a)),t.end(a)}})(e,t,r),t.json=e=>{t.setHeader("Content-Type","application/json; charset=utf-8"),t.send(JSON.stringify(e))},t.redirect=(e,r)=>(function(e,t,r){if("string"==typeof t&&(r=t,t=307),"number"!=typeof t||"string"!=typeof r)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(t,{Location:r}),e.write(r),e.end(),e})(t,e,r),t.setDraftMode=(e={enable:!0})=>(function(e,t){if(!D(t.previewModeId))throw Error("invariant: invalid previewModeId");let n=t.enable?void 0:new Date(0),{serialize:o}=r("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,t.previewModeId,{httpOnly:!0,sameSite:"lax",secure:!1,path:"/",expires:n})]),e})(t,Object.assign({},a,e)),t.setPreviewData=(e,n={})=>(function(e,t,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=r("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=r("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(t))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=r("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"lax",secure:!1,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(t,e,Object.assign({},a,n)),t.clearPreviewData=(e={})=>E(t,e),t.revalidate=(t,r)=>z(t,r||{},e,a);let _=o.default||o,k=!1;t.once("pipe",()=>k=!0),null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d);let M=await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,t));if(void 0!==M){if(M instanceof Response)throw Error('API route returned a Response object in the Node.js runtime, this is not supported. Please use `runtime: "edge"` instead: https://nextjs.org/docs/api-routes/edge-api-routes');console.warn(`API handler should not return a value, received ${typeof M}.`)}y||t.finished||t.headersSent||k||console.warn(`API resolved without sending a response for ${e.url}, this may result in stalled requests.`)}catch(e){if(e instanceof M)O(t,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;O(t,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,t,r){await K(e,t,r.query,this.userland,{...r.previewProps,revalidate:r.revalidate,trustHostHeader:r.trustHostHeader,allowedRevalidateHeaderKeys:r.allowedRevalidateHeaderKeys,hostname:r.hostname},r.minimalMode,r.dev,r.page)}}let F=U})(),module.exports=n})();
 //# sourceMappingURL=pages-api.runtime.dev.js.map
\ No newline at end of file
Diff for pages-api.ru..time.prod.js
@@ -17,5 +17,5 @@
  * Copyright(c) 2012 TJ Holowaychuk
  * Copyright(c) 2016-2017 Douglas Christopher Wilson
  * MIT Licensed
- */var r=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function t(e){var r=e&&Date.parse(e);return"number"==typeof r?r:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&r.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var r=0,t=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===r&&(n=r=o+1);break;case 44:t.push(e.substring(n,r)),n=r=o+1;break;default:r=o+1}return t.push(e.substring(n,r)),t}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(t(c)<=t(o)))return!1}return!0}}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{r[e](a,a.exports,n),i=!1}finally{i&&delete t[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,r,t)=>{"use strict";t.r(r),t.d(r,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=t.n(n);let a="aes-256-gcm";function i(e,r){let t=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,t),d=Buffer.concat([s.update(r,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,t,p,d]).toString("hex")}function s(e,r){let t=Buffer.from(r,"hex"),n=t.slice(0,64),i=t.slice(64,80),s=t.slice(80,96),d=t.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";t.r(n),t.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:r}){this.userland=e,this.definition=r}}var r,o,a,i,s,d,p,u,l,c,f,h=t("./dist/compiled/bytes/index.js"),v=t.n(h);let g=e=>{let r=e.length,t=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;t<r;)o^=e.charCodeAt(t++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,r=!1)=>(r?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=t("./dist/compiled/fresh/index.js"),x=t.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class _{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}class T extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new T}}class A extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return _.get(r,t,n);let o=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return _.get(r,a,n)},set(r,t,n,o){if("symbol"==typeof t)return _.set(r,t,n,o);let a=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return _.set(r,i??t,n,o)},has(r,t){if("symbol"==typeof t)return _.has(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&_.has(r,o)},deleteProperty(r,t){if("symbol"==typeof t)return _.deleteProperty(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||_.deleteProperty(r,o)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return T.callable;default:return _.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new A(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",k=Symbol(H),E=Symbol(N);function M(e,r={}){if(E in e)return e;let{serialize:n}=t("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0})]),Object.defineProperty(e,E,{value:!0,enumerable:!1}),e}class O extends Error{constructor(e,r){super(r),this.statusCode=e}}function P(e,r,t){e.statusCode=r,e.statusMessage=t,e.end(t)}function L({req:e},r,t){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,r,{...n,get:()=>{let n=t();return Object.defineProperty(e,r,{...o,value:n}),n},set:t=>{Object.defineProperty(e,r,{...o,value:t})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var q=t("./dist/compiled/@edge-runtime/cookies/index.js"),$=t("./dist/compiled/content-type/index.js");async function I(e,r){let n,o;try{n=(0,$.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,$.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=t("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:r})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new O(413,`Body exceeded ${r} limit`);throw new O(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new O(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=t("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,r,t,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...r.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(t.headers))a.includes(e)&&(o[e]=t.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${t.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&r.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:r});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(r){throw Error(`Failed to revalidate ${e}: ${j(r)?r.message:r}`)}}async function K(e,r,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){r.statusCode=404,r.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0;null==(c=i.api)||c.externalResolver,L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:r}=t("./dist/compiled/cookie/index.js");return r(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,r,n){var o,a;let i;if(n&&function(e,r){let t=A.from(e.headers),n=t.get(w),o=n===r.previewModeId,a=t.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(k in e)return e[k];let s=A.from(e.headers),d=new q.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let r={};return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return M(r),!1;try{let e=t("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return M(r),!1}let{decryptWithSecret:l}=t("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let r=JSON.parse(c);return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}catch{return!1}})(e,r,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let y=0,b=g&&"boolean"!=typeof g?v().parse(g):4194304,R=r.write,j=r.end;r.write=(...e)=>(y+=Buffer.byteLength(e[0]||""),R.apply(r,e)),r.end=(...t)=>(t.length&&"function"!=typeof t[0]&&(y+=Buffer.byteLength(t[0]||"")),g&&y>=b&&console.warn(`API response for ${e.url} exceeds ${v().format(b)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),j.apply(r,t)),r.status=e=>(r.statusCode=e,r),r.send=t=>(function(e,r,t){if(null==t){r.end();return}if(204===r.statusCode||304===r.statusCode){r.removeHeader("Content-Type"),r.removeHeader("Content-Length"),r.removeHeader("Transfer-Encoding"),r.end();return}let n=r.getHeader("Content-Type");if(t instanceof C.Stream){n||r.setHeader("Content-Type","application/octet-stream"),t.pipe(r);return}let o=["object","number","boolean"].includes(typeof t),a=o?JSON.stringify(t):t,i=m(a);if(i&&r.setHeader("ETag",i),!x()(e.headers,{etag:i})||(r.statusCode=304,r.end(),0)){if(Buffer.isBuffer(t)){n||r.setHeader("Content-Type","application/octet-stream"),r.setHeader("Content-Length",t.length),r.end(t);return}o&&r.setHeader("Content-Type","application/json; charset=utf-8"),r.setHeader("Content-Length",Buffer.byteLength(a)),r.end(a)}})(e,r,t),r.json=e=>{r.setHeader("Content-Type","application/json; charset=utf-8"),r.send(JSON.stringify(e))},r.redirect=(e,t)=>(function(e,r,t){if("string"==typeof r&&(t=r,r=307),"number"!=typeof r||"string"!=typeof t)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(r,{Location:t}),e.write(t),e.end(),e})(r,e,t),r.setDraftMode=(e={enable:!0})=>(function(e,r){if(!D(r.previewModeId))throw Error("invariant: invalid previewModeId");let n=r.enable?void 0:new Date(0),{serialize:o}=t("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,r.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:n})]),e})(r,Object.assign({},a,e)),r.setPreviewData=(e,n={})=>(function(e,r,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=t("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=t("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(r))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=t("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(r,e,Object.assign({},a,n)),r.clearPreviewData=(e={})=>M(r,e),r.revalidate=(r,t)=>z(r,t||{},e,a);let _=o.default||o;null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d),await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,r))}catch(e){if(e instanceof O)P(r,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;P(r,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,r,t){await K(e,r,t.query,this.userland,{...t.previewProps,revalidate:t.revalidate,trustHostHeader:t.trustHostHeader,allowedRevalidateHeaderKeys:t.allowedRevalidateHeaderKeys,hostname:t.hostname},t.minimalMode,t.dev,t.page)}}let F=U})(),module.exports=n})();
+ */var r=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function t(e){var r=e&&Date.parse(e);return"number"==typeof r?r:NaN}e.exports=function(e,n){var o=e["if-modified-since"],a=e["if-none-match"];if(!o&&!a)return!1;var i=e["cache-control"];if(i&&r.test(i))return!1;if(a&&"*"!==a){var s=n.etag;if(!s)return!1;for(var d=!0,p=function(e){for(var r=0,t=[],n=0,o=0,a=e.length;o<a;o++)switch(e.charCodeAt(o)){case 32:n===r&&(n=r=o+1);break;case 44:t.push(e.substring(n,r)),n=r=o+1;break;default:r=o+1}return t.push(e.substring(n,r)),t}(a),u=0;u<p.length;u++){var l=p[u];if(l===s||l==="W/"+s||"W/"+l===s){d=!1;break}}if(d)return!1}if(o){var c=n["last-modified"];if(!c||!(t(c)<=t(o)))return!1}return!0}}},t={};function n(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{r[e](a,a.exports,n),i=!1}finally{i&&delete t[e]}return a.exports}n.ab=__dirname+"/";var o=n(695);e.exports=o})()},"./dist/esm/server/crypto-utils.js":(e,r,t)=>{"use strict";t.r(r),t.d(r,{decryptWithSecret:()=>s,encryptWithSecret:()=>i});let n=require("crypto");var o=t.n(n);let a="aes-256-gcm";function i(e,r){let t=o().randomBytes(16),n=o().randomBytes(64),i=o().pbkdf2Sync(e,n,1e5,32,"sha512"),s=o().createCipheriv(a,i,t),d=Buffer.concat([s.update(r,"utf8"),s.final()]),p=s.getAuthTag();return Buffer.concat([n,t,p,d]).toString("hex")}function s(e,r){let t=Buffer.from(r,"hex"),n=t.slice(0,64),i=t.slice(64,80),s=t.slice(80,96),d=t.slice(96),p=o().pbkdf2Sync(e,n,1e5,32,"sha512"),u=o().createDecipheriv(a,p,i);return u.setAuthTag(s),u.update(d)+u.final("utf8")}},"next/dist/compiled/jsonwebtoken":e=>{"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"next/dist/compiled/raw-body":e=>{"use strict";e.exports=require("next/dist/compiled/raw-body")},querystring:e=>{"use strict";e.exports=require("querystring")}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";t.r(n),t.d(n,{PagesAPIRouteModule:()=>U,default:()=>F});class e{constructor({userland:e,definition:r}){this.userland=e,this.definition=r}}var r,o,a,i,s,d,p,u,l,c,f,h=t("./dist/compiled/bytes/index.js"),v=t.n(h);let g=e=>{let r=e.length,t=0,n=0,o=8997,a=0,i=33826,s=0,d=40164,p=0,u=52210;for(;t<r;)o^=e.charCodeAt(t++),n=435*o,a=435*i,s=435*d,p=435*u,s+=o<<8,p+=i<<8,a+=n>>>16,o=65535&n,s+=a>>>16,i=65535&a,u=p+(s>>>16)&65535,d=65535&s;return(15&u)*281474976710656+4294967296*d+65536*i+(o^u>>4)},m=(e,r=!1)=>(r?'W/"':'"')+g(e).toString(36)+e.length.toString(36)+'"',y="undefined"!=typeof performance;y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);var b=t("./dist/compiled/fresh/index.js"),x=t.n(b);let w="x-prerender-revalidate",S="x-prerender-revalidate-if-generated",R={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route",appRouteHandler:"app-route-handler"};({...R,GROUP:{server:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler],nonClientServerTarget:[R.middleware,R.api],app:[R.reactServerComponents,R.actionBrowser,R.appMetadataRoute,R.appRouteHandler,R.serverSideRendering,R.appPagesBrowser,R.shared]}});let C=require("stream");function j(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}class _{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}class T extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new T}}class A extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return _.get(r,t,n);let o=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===o);if(void 0!==a)return _.get(r,a,n)},set(r,t,n,o){if("symbol"==typeof t)return _.set(r,t,n,o);let a=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return _.set(r,i??t,n,o)},has(r,t){if("symbol"==typeof t)return _.has(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==o&&_.has(r,o)},deleteProperty(r,t){if("symbol"==typeof t)return _.deleteProperty(r,t);let n=t.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===o||_.deleteProperty(r,o)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return T.callable;default:return _.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new A(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}let N="__prerender_bypass",H="__next_preview_data",k=Symbol(H),E=Symbol(N);function M(e,r={}){if(E in e)return e;let{serialize:n}=t("./dist/compiled/cookie/index.js"),o=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof o?[o]:Array.isArray(o)?o:[],n(N,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0}),n(H,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==r.path?{path:r.path}:void 0})]),Object.defineProperty(e,E,{value:!0,enumerable:!1}),e}class O extends Error{constructor(e,r){super(r),this.statusCode=e}}function P(e,r,t){e.statusCode=r,e.statusMessage=t,e.end(t)}function L({req:e},r,t){let n={configurable:!0,enumerable:!0},o={...n,writable:!0};Object.defineProperty(e,r,{...n,get:()=>{let n=t();return Object.defineProperty(e,r,{...o,value:n}),n},set:t=>{Object.defineProperty(e,r,{...o,value:t})}})}let B=require("next/dist/server/lib/trace/tracer");(function(e){e.handleRequest="BaseServer.handleRequest",e.run="BaseServer.run",e.pipe="BaseServer.pipe",e.getStaticHTML="BaseServer.getStaticHTML",e.render="BaseServer.render",e.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",e.renderToResponse="BaseServer.renderToResponse",e.renderToHTML="BaseServer.renderToHTML",e.renderError="BaseServer.renderError",e.renderErrorToResponse="BaseServer.renderErrorToResponse",e.renderErrorToHTML="BaseServer.renderErrorToHTML",e.render404="BaseServer.render404"})(r||(r={})),function(e){e.loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",e.loadComponents="LoadComponents.loadComponents"}(o||(o={})),function(e){e.getRequestHandler="NextServer.getRequestHandler",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer"}(a||(a={})),function(e){e.compression="NextNodeServer.compression",e.getBuildId="NextNodeServer.getBuildId",e.generateStaticRoutes="NextNodeServer.generateStaticRoutes",e.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",e.generatePublicRoutes="NextNodeServer.generatePublicRoutes",e.generateImageRoutes="NextNodeServer.generateImageRoutes.route",e.sendRenderResult="NextNodeServer.sendRenderResult",e.proxyRequest="NextNodeServer.proxyRequest",e.runApi="NextNodeServer.runApi",e.render="NextNodeServer.render",e.renderHTML="NextNodeServer.renderHTML",e.imageOptimizer="NextNodeServer.imageOptimizer",e.getPagePath="NextNodeServer.getPagePath",e.getRoutesManifest="NextNodeServer.getRoutesManifest",e.findPageComponents="NextNodeServer.findPageComponents",e.getFontManifest="NextNodeServer.getFontManifest",e.getServerComponentManifest="NextNodeServer.getServerComponentManifest",e.getRequestHandler="NextNodeServer.getRequestHandler",e.renderToHTML="NextNodeServer.renderToHTML",e.renderError="NextNodeServer.renderError",e.renderErrorToHTML="NextNodeServer.renderErrorToHTML",e.render404="NextNodeServer.render404",e.route="route",e.onProxyReq="onProxyReq",e.apiResolver="apiResolver",e.internalFetch="internalFetch"}(i||(i={})),(s||(s={})).startServer="startServer.startServer",function(e){e.getServerSideProps="Render.getServerSideProps",e.getStaticProps="Render.getStaticProps",e.renderToString="Render.renderToString",e.renderDocument="Render.renderDocument",e.createBodyResult="Render.createBodyResult"}(d||(d={})),function(e){e.renderToString="AppRender.renderToString",e.renderToReadableStream="AppRender.renderToReadableStream",e.getBodyResult="AppRender.getBodyResult",e.fetch="AppRender.fetch"}(p||(p={})),(u||(u={})).executeRoute="Router.executeRoute",(l||(l={})).runHandler="Node.runHandler",(c||(c={})).runHandler="AppRouteRouteHandlers.runHandler",function(e){e.generateMetadata="ResolveMetadata.generateMetadata",e.generateViewport="ResolveMetadata.generateViewport"}(f||(f={}));var q=t("./dist/compiled/@edge-runtime/cookies/index.js"),$=t("./dist/compiled/content-type/index.js");async function I(e,r){let n,o;try{n=(0,$.parse)(e.headers["content-type"]||"text/plain")}catch{n=(0,$.parse)("text/plain")}let{type:a,parameters:i}=n,s=i.charset||"utf-8";try{let n=t("next/dist/compiled/raw-body");o=await n(e,{encoding:s,limit:r})}catch(e){if(j(e)&&"entity.too.large"===e.type)throw new O(413,`Body exceeded ${r} limit`);throw new O(400,"Invalid body")}let d=o.toString();if("application/json"===a||"application/ld+json"===a)return function(e){if(0===e.length)return{};try{return JSON.parse(e)}catch(e){throw new O(400,"Invalid JSON")}}(d);if("application/x-www-form-urlencoded"!==a)return d;{let e=t("querystring");return e.decode(d)}}function D(e){return"string"==typeof e&&e.length>=16}async function z(e,r,t,n){if("string"!=typeof e||!e.startsWith("/"))throw Error(`Invalid urlPath provided to revalidate(), must be a path e.g. /blog/post-1, received ${e}`);let o={[w]:n.previewModeId,...r.unstable_onlyGenerated?{[S]:"1"}:{}},a=[...n.allowedRevalidateHeaderKeys||[],...n.trustHostHeader?["cookie","x-vercel-protection-bypass"]:[]];for(let e of Object.keys(t.headers))a.includes(e)&&(o[e]=t.headers[e]);try{if(n.trustHostHeader){let n=await fetch(`https://${t.headers.host}${e}`,{method:"HEAD",headers:o}),a=n.headers.get("x-vercel-cache")||n.headers.get("x-nextjs-cache");if((null==a?void 0:a.toUpperCase())!=="REVALIDATED"&&!(404===n.status&&r.unstable_onlyGenerated))throw Error(`Invalid response ${n.status}`)}else if(n.revalidate)await n.revalidate({urlPath:e,revalidateHeaders:o,opts:r});else throw Error("Invariant: required internal revalidate method not passed to api-utils")}catch(r){throw Error(`Failed to revalidate ${e}: ${j(r)?r.message:r}`)}}async function K(e,r,n,o,a,i,s,d){try{var p,u,c,f,h;if(!o){r.statusCode=404,r.end("Not Found");return}let i=o.config||{},s=(null==(p=i.api)?void 0:p.bodyParser)!==!1,g=(null==(u=i.api)?void 0:u.responseLimit)??!0;null==(c=i.api)||c.externalResolver,L({req:e},"cookies",(h=e.headers,function(){let{cookie:e}=h;if(!e)return{};let{parse:r}=t("./dist/compiled/cookie/index.js");return r(Array.isArray(e)?e.join("; "):e)})),e.query=n,L({req:e},"previewData",()=>(function(e,r,n){var o,a;let i;if(n&&function(e,r){let t=A.from(e.headers),n=t.get(w),o=n===r.previewModeId,a=t.has(S);return{isOnDemandRevalidate:o,revalidateOnlyGenerated:a}}(e,n).isOnDemandRevalidate)return!1;if(k in e)return e[k];let s=A.from(e.headers),d=new q.RequestCookies(s),p=null==(o=d.get(N))?void 0:o.value,u=null==(a=d.get(H))?void 0:a.value;if(p&&!u&&p===n.previewModeId){let r={};return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}if(!p&&!u)return!1;if(!p||!u||p!==n.previewModeId)return M(r),!1;try{let e=t("next/dist/compiled/jsonwebtoken");i=e.verify(u,n.previewModeSigningKey)}catch{return M(r),!1}let{decryptWithSecret:l}=t("./dist/esm/server/crypto-utils.js"),c=l(Buffer.from(n.previewModeEncryptionKey),i.data);try{let r=JSON.parse(c);return Object.defineProperty(e,k,{value:r,enumerable:!1}),r}catch{return!1}})(e,r,a)),L({req:e},"preview",()=>!1!==e.previewData||void 0),L({req:e},"draftMode",()=>e.preview),s&&!e.body&&(e.body=await I(e,i.api&&i.api.bodyParser&&i.api.bodyParser.sizeLimit?i.api.bodyParser.sizeLimit:"1mb"));let y=0,b=g&&"boolean"!=typeof g?v().parse(g):4194304,R=r.write,j=r.end;r.write=(...e)=>(y+=Buffer.byteLength(e[0]||""),R.apply(r,e)),r.end=(...t)=>(t.length&&"function"!=typeof t[0]&&(y+=Buffer.byteLength(t[0]||"")),g&&y>=b&&console.warn(`API response for ${e.url} exceeds ${v().format(b)}. API Routes are meant to respond quickly. https://nextjs.org/docs/messages/api-routes-response-size-limit`),j.apply(r,t)),r.status=e=>(r.statusCode=e,r),r.send=t=>(function(e,r,t){if(null==t){r.end();return}if(204===r.statusCode||304===r.statusCode){r.removeHeader("Content-Type"),r.removeHeader("Content-Length"),r.removeHeader("Transfer-Encoding"),r.end();return}let n=r.getHeader("Content-Type");if(t instanceof C.Stream){n||r.setHeader("Content-Type","application/octet-stream"),t.pipe(r);return}let o=["object","number","boolean"].includes(typeof t),a=o?JSON.stringify(t):t,i=m(a);if(i&&r.setHeader("ETag",i),!x()(e.headers,{etag:i})||(r.statusCode=304,r.end(),0)){if(Buffer.isBuffer(t)){n||r.setHeader("Content-Type","application/octet-stream"),r.setHeader("Content-Length",t.length),r.end(t);return}o&&r.setHeader("Content-Type","application/json; charset=utf-8"),r.setHeader("Content-Length",Buffer.byteLength(a)),r.end(a)}})(e,r,t),r.json=e=>{r.setHeader("Content-Type","application/json; charset=utf-8"),r.send(JSON.stringify(e))},r.redirect=(e,t)=>(function(e,r,t){if("string"==typeof r&&(t=r,r=307),"number"!=typeof r||"string"!=typeof t)throw Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').");return e.writeHead(r,{Location:t}),e.write(t),e.end(),e})(r,e,t),r.setDraftMode=(e={enable:!0})=>(function(e,r){if(!D(r.previewModeId))throw Error("invariant: invalid previewModeId");let n=r.enable?void 0:new Date(0),{serialize:o}=t("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],o(N,r.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:n})]),e})(r,Object.assign({},a,e)),r.setPreviewData=(e,n={})=>(function(e,r,n){if(!D(n.previewModeId))throw Error("invariant: invalid previewModeId");if(!D(n.previewModeEncryptionKey))throw Error("invariant: invalid previewModeEncryptionKey");if(!D(n.previewModeSigningKey))throw Error("invariant: invalid previewModeSigningKey");let o=t("next/dist/compiled/jsonwebtoken"),{encryptWithSecret:a}=t("./dist/esm/server/crypto-utils.js"),i=o.sign({data:a(Buffer.from(n.previewModeEncryptionKey),JSON.stringify(r))},n.previewModeSigningKey,{algorithm:"HS256",...void 0!==n.maxAge?{expiresIn:n.maxAge}:void 0});if(i.length>2048)throw Error("Preview data is limited to 2KB currently, reduce how much data you are storing as preview data to continue");let{serialize:s}=t("./dist/compiled/cookie/index.js"),d=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof d?[d]:Array.isArray(d)?d:[],s(N,n.previewModeId,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0}),s(H,i,{httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==n.maxAge?{maxAge:n.maxAge}:void 0,...void 0!==n.path?{path:n.path}:void 0})]),e})(r,e,Object.assign({},a,n)),r.clearPreviewData=(e={})=>M(r,e),r.revalidate=(r,t)=>z(r,t||{},e,a);let _=o.default||o;null==(f=(0,B.getTracer)().getRootSpanAttributes())||f.set("next.route",d),await (0,B.getTracer)().trace(l.runHandler,{spanName:`executing api route (pages) ${d}`},()=>_(e,r))}catch(e){if(e instanceof O)P(r,e.statusCode,e.message);else{if(s)throw j(e)&&(e.page=d),e;if(console.error(e),i)throw e;P(r,500,"Internal Server Error")}}}class U extends e{constructor(e){if(super(e),"function"!=typeof e.userland.default)throw Error(`Page ${e.definition.page} does not export a default function.`)}async render(e,r,t){await K(e,r,t.query,this.userland,{...t.previewProps,revalidate:t.revalidate,trustHostHeader:t.trustHostHeader,allowedRevalidateHeaderKeys:t.allowedRevalidateHeaderKeys,hostname:t.hostname},t.minimalMode,t.dev,t.page)}}let F=U})(),module.exports=n})();
 //# sourceMappingURL=pages-api.runtime.prod.js.map
\ No newline at end of file
Diff for pages-turbo...time.prod.js

Diff too large to display

Diff for pages.runtime.dev.js

Diff too large to display

Diff for pages.runtime.prod.js

Diff too large to display

Diff for server.runtime.prod.js

Diff too large to display

Please sign in to comment.