@wular/pnext 0.0.4 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -16
- package/bin/pnext +6 -1
- package/config/lint/base.js +7 -7
- package/config/ts/base.json +2 -4
- package/config/ts/react.json +2 -6
- package/package.json +23 -2
- package/reference/compat.md +87 -22
- package/reference/config.md +40 -93
- package/reference/css.md +42 -33
- package/reference/dev.md +26 -33
- package/reference/env.md +18 -20
- package/reference/getting-started.md +132 -0
- package/reference/metadata.md +31 -46
- package/reference/navigation.md +65 -105
- package/reference/performance.md +21 -142
- package/reference/rendering.md +78 -75
- package/reference/routing.md +97 -107
- package/reference/typegen.md +27 -29
- package/src/api/cache.ts +36 -37
- package/src/api/client-cache.ts +2 -2
- package/src/api/client-navigation.ts +121 -114
- package/src/api/dynamic.tsx +58 -55
- package/src/api/link.tsx +52 -53
- package/src/api/navigation.ts +59 -58
- package/src/api/server.ts +152 -144
- package/src/api/suspense.ts +4 -4
- package/src/cli/adapters/vercel-warm.ts +126 -121
- package/src/cli/adapters/vercel.ts +437 -443
- package/src/cli/analyze.ts +333 -144
- package/src/cli/{named-bin.ts → boot/named-bin.ts} +37 -37
- package/src/cli/{boot-trace.ts → boot/trace.ts} +10 -10
- package/src/cli/build.ts +976 -978
- package/src/cli/create.ts +72 -64
- package/src/cli/dev.ts +116 -116
- package/src/cli/index.ts +94 -85
- package/src/cli/migrate/package-json.ts +73 -71
- package/src/cli/migrate/report.ts +32 -33
- package/src/cli/migrate/{index.ts → run.ts} +48 -49
- package/src/cli/migrate/scan.ts +46 -46
- package/src/cli/migrate/spinner.ts +9 -9
- package/src/cli/migrate/tsconfig.ts +35 -35
- package/src/cli/{server-entry.ts → serve/entry.ts} +57 -57
- package/src/cli/{request-pipeline.ts → serve/pipeline.ts} +386 -394
- package/src/cli/{serve-ui.ts → serve/ui.ts} +47 -47
- package/src/cli/start.ts +65 -66
- package/src/{typegen.ts → cli/typegen.ts} +59 -59
- package/src/client/build.ts +802 -768
- package/src/client/chunk-fold.ts +245 -240
- package/src/client/{paths.ts → chunk-name.ts} +6 -6
- package/src/client/entry.ts +162 -147
- package/src/client/prebuilt.ts +231 -223
- package/src/client/profile.ts +29 -29
- package/src/client/react-compiler.ts +20 -15
- package/src/client/{compat-surface.ts → react-tier.ts} +64 -64
- package/src/client/reference-stub.ts +51 -51
- package/src/client/reference.ts +19 -19
- package/src/{api → client}/router/events.ts +32 -17
- package/src/{api → client}/router/history.ts +16 -16
- package/src/{api → client}/router/hub.ts +52 -53
- package/src/{api/router.ts → client/router/index.ts} +61 -60
- package/src/{api → client}/router/policies.ts +24 -24
- package/src/{api → client}/router/runtime.ts +2022 -1995
- package/src/{api → client}/router/types.ts +98 -98
- package/src/compat/actions/client-plugin.ts +42 -43
- package/src/compat/actions/client-stub.ts +14 -14
- package/src/compat/actions/{action-client.ts → client.ts} +194 -193
- package/src/compat/actions/config.ts +63 -64
- package/src/compat/actions/detect.ts +68 -68
- package/src/compat/actions/discovery.ts +105 -105
- package/src/compat/actions/{action-dispatch.ts → dispatch.ts} +277 -274
- package/src/compat/actions/early-submit.ts +1 -1
- package/src/compat/actions/endpoint.ts +198 -198
- package/src/compat/actions/extensions.ts +811 -0
- package/src/compat/actions/flight.ts +23 -23
- package/src/compat/actions/form-state.ts +34 -34
- package/src/compat/actions/hoist.ts +382 -236
- package/src/compat/actions/ids.ts +7 -12
- package/src/compat/actions/index.ts +8 -8
- package/src/compat/actions/instances.ts +46 -46
- package/src/compat/actions/origin.ts +47 -48
- package/src/compat/actions/protocol.ts +22 -22
- package/src/compat/actions/registry.ts +19 -19
- package/src/compat/{misc/action-return.ts → actions/return.ts} +60 -57
- package/src/compat/actions/rewrite.ts +125 -125
- package/src/compat/actions/{action-router.ts → router.ts} +10 -10
- package/src/compat/actions/serve.ts +132 -136
- package/src/compat/actions/server-tag.ts +4 -4
- package/src/compat/actions/{action-shared.ts → shared.ts} +34 -34
- package/src/compat/actions/unrecognized-error.ts +4 -4
- package/src/compat/{index.ts → aliases.ts} +112 -109
- package/src/compat/bundler/bun-externals.ts +18 -18
- package/src/compat/bundler/cjs-exports.ts +271 -223
- package/src/compat/bundler/config.ts +116 -111
- package/src/compat/bundler/externals.ts +12 -12
- package/src/compat/bundler/import-meta-url.ts +19 -19
- package/src/compat/bundler/modularize-imports.ts +36 -33
- package/src/compat/bundler/new-url-asset.ts +22 -24
- package/src/compat/bundler/optimize-package-imports.ts +111 -107
- package/src/compat/bundler/polyfill.ts +28 -28
- package/src/compat/bundler/react-compiler.ts +35 -29
- package/src/compat/bundler/react-profiler.tsx +11 -11
- package/src/compat/bundler/relay-transform.ts +48 -47
- package/src/compat/bundler/require-context.ts +119 -113
- package/src/compat/bundler/resolve-extensions.ts +19 -19
- package/src/compat/bundler/source-cache.ts +25 -25
- package/src/compat/bundler/static-imports.ts +7 -7
- package/src/compat/bundler/symlink-imports.ts +46 -46
- package/src/compat/bundler/tsconfig-paths.ts +13 -15
- package/src/compat/bundler/wasm.ts +58 -60
- package/src/compat/bundler/webpack-loaders.ts +254 -241
- package/src/compat/bundler/worker.ts +101 -104
- package/src/compat/cache/build-flags.ts +29 -29
- package/src/compat/cache/build-prerender-errors.ts +40 -44
- package/src/compat/cache/custom-handler.ts +60 -53
- package/src/compat/cache/fetch-patch.ts +240 -240
- package/src/compat/cache/handler.ts +27 -31
- package/src/compat/cache/modern-handler.ts +148 -126
- package/src/compat/cache/resume-data-cache.ts +47 -45
- package/src/compat/cache/revalidate.ts +233 -232
- package/src/compat/cache/runtime-error.ts +35 -35
- package/src/compat/cache/use-cache-transform.ts +442 -417
- package/src/compat/cache/use-cache.ts +650 -614
- package/src/compat/cache-control.ts +140 -142
- package/src/compat/client/base-path.ts +21 -20
- package/src/compat/client/css-order.ts +18 -18
- package/src/compat/client/errors/bare-boundary.ts +11 -11
- package/src/compat/client/errors/control-flow.ts +23 -23
- package/src/compat/client/errors/error-boundary.ts +61 -61
- package/src/compat/client/errors/global-error.ts +101 -91
- package/src/compat/client/errors/install.ts +71 -72
- package/src/compat/client/errors/lazy.ts +23 -23
- package/src/compat/client/errors/primitive-throw.ts +47 -45
- package/src/compat/client/errors/soft-refresh.ts +4 -4
- package/src/compat/client/link-status.ts +33 -33
- package/src/compat/client/{nav-compat-runtime.ts → nav-runtime.ts} +20 -20
- package/src/compat/client/{nav-compat.ts → nav.ts} +12 -13
- package/src/compat/client/navigation-scroll.ts +63 -63
- package/src/compat/client/optimistic-routing.ts +93 -88
- package/src/compat/client/prefetch-cache.ts +23 -24
- package/src/compat/client/route-announcer.ts +35 -35
- package/src/compat/client/segment-cache-policy.ts +20 -20
- package/src/compat/client/segment-cache.ts +309 -315
- package/src/compat/client/segment-prefetch.ts +127 -132
- package/src/compat/client/trailing-slash.ts +5 -4
- package/src/compat/css/chunking.ts +113 -116
- package/src/compat/css/inline-css.ts +21 -21
- package/src/compat/css/lightningcss.ts +37 -38
- package/src/compat/css/modules.ts +161 -175
- package/src/compat/css/nonce.ts +7 -7
- package/src/compat/css/sass-plugin.ts +18 -21
- package/src/compat/css/sass.ts +150 -152
- package/src/compat/css/styled-jsx-runtime.ts +27 -27
- package/src/compat/css/styled-jsx.ts +21 -21
- package/src/compat/edge-runtime.ts +27 -27
- package/src/compat/{adapter → export}/build-complete.ts +72 -75
- package/src/compat/export/client.ts +29 -31
- package/src/compat/export/{index.ts → emit.ts} +111 -110
- package/src/compat/export/standalone.ts +62 -54
- package/src/compat/image-optimizer/cache.ts +51 -49
- package/src/compat/image-optimizer/detect.ts +52 -52
- package/src/compat/image-optimizer/{index.ts → optimize.ts} +189 -194
- package/src/compat/image-optimizer/source.ts +77 -80
- package/src/compat/lifecycle/after-scope.ts +26 -26
- package/src/compat/lifecycle/after.ts +48 -45
- package/src/compat/lifecycle/error-funnel.ts +98 -102
- package/src/compat/lifecycle/error-serialize.ts +30 -26
- package/src/compat/lifecycle/error-ui.ts +67 -32
- package/src/compat/lifecycle/instrumentation-client.ts +36 -38
- package/src/compat/lifecycle/instrumentation.ts +85 -85
- package/src/compat/lifecycle/node-console.ts +11 -11
- package/src/compat/lifecycle/testmode.ts +160 -132
- package/src/compat/mdx/compile.ts +60 -57
- package/src/compat/mdx/plugin.ts +11 -11
- package/src/compat/mdx/{next-mdx-stub.ts → stub.ts} +5 -5
- package/src/compat/{metadata-route-artifacts.ts → metadata-artifacts.ts} +195 -191
- package/src/compat/metadata.ts +75 -81
- package/src/compat/next/cache.ts +68 -69
- package/src/compat/next/canonical-url.ts +9 -9
- package/src/compat/next/client-cache.ts +19 -19
- package/src/compat/next/client-navigation.ts +112 -116
- package/src/compat/next/client-only.ts +1 -1
- package/src/compat/next/client-script.tsx +99 -93
- package/src/compat/next/client-server.ts +10 -10
- package/src/compat/next/config-loader.ts +176 -173
- package/src/compat/next/config.ts +7 -7
- package/src/compat/next/constants.cjs +6 -6
- package/src/compat/next/constants.ts +6 -6
- package/src/compat/next/custom-server.ts +26 -24
- package/src/compat/next/dist/client/components/app-router-headers.ts +21 -21
- package/src/compat/next/dist/server/app-render/work-unit-async-storage.external.cjs +3 -4
- package/src/compat/next/dist/server/web/spec-extension/revalidate.ts +1 -1
- package/src/compat/next/dist/server/web/spec-extension/unstable-cache.ts +1 -1
- package/src/compat/next/dist/server/web/spec-extension/unstable-no-store.ts +1 -1
- package/src/compat/next/dynamic.tsx +21 -18
- package/src/compat/next/error.tsx +52 -52
- package/src/compat/next/font/cache.ts +74 -74
- package/src/compat/next/font/google.ts +2 -2
- package/src/compat/next/font/index.ts +1 -1
- package/src/compat/next/font/local.ts +3 -3
- package/src/compat/next/font/runtime-client.ts +17 -15
- package/src/compat/next/font/runtime.ts +443 -408
- package/src/compat/next/font/shared.ts +120 -108
- package/src/compat/next/form.tsx +63 -63
- package/src/compat/next/head.tsx +2 -2
- package/src/compat/next/headers.ts +103 -95
- package/src/compat/next/image/client.tsx +220 -0
- package/src/compat/next/image/config.ts +56 -58
- package/src/compat/next/image/optimizer.ts +40 -36
- package/src/compat/next/image/patterns.ts +37 -40
- package/src/compat/next/{image-props.ts → image/props.ts} +208 -202
- package/src/compat/next/image/shared.ts +65 -57
- package/src/compat/next/image/static-metadata.ts +98 -107
- package/src/compat/next/image/validate.ts +79 -88
- package/src/compat/next/image.tsx +19 -23
- package/src/compat/next/index.ts +1 -1
- package/src/compat/next/legacy-image.tsx +59 -60
- package/src/compat/next/{link-validation-transform.ts → link-transform.ts} +95 -96
- package/src/compat/next/link.tsx +158 -158
- package/src/compat/next/navigation.cjs +12 -3
- package/src/compat/next/navigation.ts +48 -50
- package/src/compat/next/offline.ts +27 -27
- package/src/compat/next/og.ts +121 -124
- package/src/compat/next/preferred-region.ts +13 -14
- package/src/compat/next/redirects.ts +58 -56
- package/src/compat/next/resource-hints.ts +73 -76
- package/src/compat/next/rewrites.ts +130 -133
- package/src/compat/next/root-params.ts +45 -45
- package/src/compat/next/{optimistic-route-state.ts → route-state.ts} +52 -52
- package/src/compat/next/router.cjs +4 -2
- package/src/compat/next/router.ts +58 -61
- package/src/compat/next/script.tsx +108 -108
- package/src/compat/next/server-only.ts +1 -1
- package/src/compat/next/server.ts +19 -19
- package/src/compat/next/svgr.ts +18 -17
- package/src/compat/next/telemetry.ts +24 -24
- package/src/compat/next/{image-usage.ts → usage.ts} +70 -39
- package/src/compat/next/user-agent.ts +53 -49
- package/src/compat/next/web-vitals.ts +22 -24
- package/src/compat/otel/api.ts +41 -41
- package/src/compat/otel/client-trace-metadata.ts +25 -27
- package/src/compat/otel/fetch-span.ts +29 -29
- package/src/compat/otel/tracer.ts +331 -331
- package/src/compat/pages/api.ts +456 -0
- package/src/compat/pages/client-plugin.ts +36 -36
- package/src/compat/pages/router-state.ts +34 -34
- package/src/compat/pages/{index.ts → router.ts} +130 -135
- package/src/compat/ppr/io.ts +12 -12
- package/src/compat/ppr/missing-root-params.ts +34 -38
- package/src/compat/ppr/root-params-scan.ts +66 -66
- package/src/compat/ppr/root-params-transform.ts +24 -26
- package/src/compat/ppr/root-params.ts +30 -30
- package/src/compat/ppr/segment-config-incompat.ts +6 -7
- package/src/compat/protocol.ts +71 -70
- package/src/compat/react/action-state.ts +47 -48
- package/src/compat/react/client-lite.ts +15 -15
- package/src/compat/react/client.ts +4 -4
- package/src/compat/react/compiler-runtime.ts +11 -11
- package/src/compat/react/dom-client.ts +44 -44
- package/src/compat/react/dom-react-server.ts +10 -16
- package/src/compat/react/dom-server.ts +10 -10
- package/src/compat/react/dom.ts +52 -52
- package/src/compat/react/hooks-extra.ts +34 -35
- package/src/compat/react/parity.ts +64 -61
- package/src/compat/react/preact.ts +81 -82
- package/src/compat/react/react-server.ts +28 -28
- package/src/compat/react/router-shim.ts +1 -1
- package/src/compat/react/server-component-use.ts +8 -8
- package/src/compat/react/server-inserted-html.ts +30 -31
- package/src/compat/react/server.ts +53 -55
- package/src/compat/react/use.ts +32 -32
- package/src/compat/react/view-transition.ts +20 -20
- package/src/compat/register/actions.ts +35 -824
- package/src/compat/register/boot.ts +41 -41
- package/src/compat/register/build-tier.ts +5 -5
- package/src/compat/register/build.ts +74 -70
- package/src/compat/register/bundler.ts +161 -156
- package/src/compat/register/cache.ts +20 -20
- package/src/compat/register/client-errors.ts +3 -3
- package/src/compat/register/config.ts +6 -6
- package/src/compat/register/css-extras.ts +30 -34
- package/src/compat/register/edge-runtime.ts +3 -3
- package/src/compat/register/errors.ts +10 -12
- package/src/compat/register/export.ts +16 -16
- package/src/compat/register/font.ts +11 -11
- package/src/compat/register/hooks.ts +2 -2
- package/src/compat/register/image.ts +40 -40
- package/src/compat/register/index.ts +59 -62
- package/src/compat/register/instrumentation-client.ts +10 -10
- package/src/compat/register/lifecycle.ts +25 -28
- package/src/compat/register/mdx.ts +10 -10
- package/src/compat/register/middleware.ts +226 -16
- package/src/compat/register/otel.ts +80 -88
- package/src/compat/register/pages-api.ts +10 -463
- package/src/compat/register/ppr.ts +16 -16
- package/src/compat/register/protocol.ts +17 -18
- package/src/compat/register/proxy.ts +49 -51
- package/src/compat/register/render.ts +79 -76
- package/src/compat/register/routing.ts +162 -159
- package/src/compat/register/segment.ts +24 -1897
- package/src/compat/register/static-image.ts +3 -3
- package/src/compat/register/{misc.ts → taint.ts} +9 -9
- package/src/compat/register/typed-routes.ts +14 -14
- package/src/compat/register/{usecache.ts → use-cache.ts} +39 -39
- package/src/compat/register/validation.ts +18 -18
- package/src/compat/segment/loading-boundary.ts +43 -45
- package/src/compat/segment/page-slot.ts +69 -69
- package/src/compat/segment/serve.ts +1884 -0
- package/src/compat/segment/tree.ts +113 -112
- package/src/compat/segment/vary-key.ts +38 -38
- package/src/compat/segment/vary-params.ts +138 -142
- package/src/compat/static-params.ts +14 -12
- package/src/compat/tsconfig-defaults.ts +87 -91
- package/src/compat/typecheck/{index.ts → check.ts} +234 -212
- package/src/compat/typecheck/worker.ts +15 -12
- package/src/compat/typed-routes/{index.ts → generate.ts} +36 -36
- package/src/compat/typed-routes/manifest.ts +174 -170
- package/src/compat/typed-routes/typegen.ts +127 -110
- package/src/compat/validation/errors.ts +16 -19
- package/src/compat/validation/prerender-diagnostics.ts +521 -504
- package/src/compat/validation/{index.ts → validate.ts} +647 -648
- package/src/compat-bootstrap.ts +16 -16
- package/src/config.ts +86 -69
- package/src/css/build.ts +230 -227
- package/src/css/postcss.ts +79 -80
- package/src/css/worker.ts +14 -15
- package/src/dev/client-actions.ts +10 -10
- package/src/dev/client-chunk-store.ts +27 -27
- package/src/dev/{client-key-cache.ts → restart/client-key.ts} +76 -76
- package/src/dev/{restart-cache.ts → restart/enabled.ts} +1 -1
- package/src/dev/{global-css-cache.ts → restart/global-css.ts} +91 -83
- package/src/dev/{node-module-bundle-cache.ts → restart/node-modules.ts} +24 -24
- package/src/dev/{route-bundle-key-cache.ts → restart/route-bundle-key.ts} +53 -53
- package/src/dev/{route-facts-cache.ts → restart/route-facts.ts} +82 -82
- package/src/dev/server.ts +804 -820
- package/src/env.ts +46 -43
- package/src/extensions.ts +491 -478
- package/src/index.ts +8 -8
- package/src/internal.ts +20 -23
- package/src/{islands → render}/boundary-error.ts +3 -3
- package/src/render/hooks.ts +71 -71
- package/src/render/island-context.ts +14 -14
- package/src/render/metadata.ts +310 -310
- package/src/{ppr-postpone.ts → render/postpone.ts} +5 -5
- package/src/{ppr.ts → render/ppr.ts} +244 -245
- package/src/render/renderer.ts +2087 -2082
- package/src/render/resource-hints.ts +16 -17
- package/src/render/slots.tsx +224 -235
- package/src/{islands → render}/static-children.ts +9 -12
- package/src/{islands → render}/static-slots.ts +37 -37
- package/src/{cache/context.ts → request/cache.ts} +20 -20
- package/src/request/context.ts +107 -107
- package/src/{dynamic/source.ts → resolve/dynamic.ts} +139 -139
- package/src/resolve/engine.ts +90 -77
- package/src/resolve/imports.ts +475 -463
- package/src/resolve/scan-facts.ts +318 -296
- package/src/resolve/source-text.ts +37 -37
- package/src/{dynamic → resolve}/tree-shake.ts +132 -128
- package/src/routing/forwarded.ts +19 -19
- package/src/routing/handler.ts +84 -91
- package/src/routing/href.ts +87 -70
- package/src/routing/{metadata.ts → metadata-files.ts} +403 -401
- package/src/{proxy.ts → routing/proxy.ts} +306 -312
- package/src/routing/{request-runtime.ts → request-environment.ts} +10 -10
- package/src/routing/routes.ts +827 -815
- package/src/routing/slots.ts +164 -160
- package/src/runtime/loader.ts +954 -0
- package/src/{dev → runtime}/module-cache.ts +309 -287
- package/src/{dev → runtime}/module-generations.ts +9 -9
- package/src/{dev → runtime}/module-transform.ts +81 -72
- package/src/{dev/imports.ts → runtime/modules.ts} +934 -847
- package/src/runtime/{server.ts → vendor-build.ts} +848 -1696
- package/src/runtime/vendor.ts +428 -406
- package/src/styles.d.ts +9 -0
- package/src/types.ts +324 -335
- package/src/utils/ansi.ts +5 -5
- package/src/utils/{source.ts → code.ts} +15 -12
- package/src/utils/content-type.ts +3 -3
- package/src/utils/decode.ts +2 -2
- package/src/utils/dev-profile.ts +13 -13
- package/src/utils/error-log.ts +6 -6
- package/src/utils/esbuild.ts +18 -18
- package/src/utils/fs-cache.ts +13 -13
- package/src/utils/fs.ts +57 -49
- package/src/utils/html.ts +20 -24
- package/src/utils/native-require.ts +8 -8
- package/src/utils/serialize.ts +139 -146
- package/src/utils/verbose.ts +18 -18
- package/reference/overview.md +0 -35
- package/src/cli/analyze-print.ts +0 -181
- package/src/compat/middleware/manifest.ts +0 -210
- package/src/compat/next/image-client.tsx +0 -215
- package/src/compat/next/link-usage.ts +0 -29
- package/src/css/index.ts +0 -2
- package/src/render/index.ts +0 -1
- package/src/style-modules.d.ts +0 -9
package/src/types.ts
CHANGED
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
import type { ComponentChildren } from 'preact'
|
|
1
|
+
import type { ComponentChildren } from 'preact'
|
|
2
2
|
|
|
3
|
-
export type RouteMode = 'static' | 'dynamic'
|
|
3
|
+
export type RouteMode = 'static' | 'dynamic'
|
|
4
4
|
|
|
5
|
-
export
|
|
5
|
+
export const PREFETCH_MODES = ['visible', 'intent', 'load', false] as const
|
|
6
|
+
export type PrefetchMode = (typeof PREFETCH_MODES)[number]
|
|
6
7
|
|
|
7
8
|
export interface PNextRoutes {
|
|
8
|
-
readonly __pnext_internal_route_brand?: never
|
|
9
|
+
readonly __pnext_internal_route_brand?: never
|
|
9
10
|
}
|
|
10
11
|
|
|
11
|
-
export type RoutePath = Extract<Exclude<keyof PNextRoutes, '__pnext_internal_route_brand'>, string
|
|
12
|
-
export type RouteParamValue = string | string[]
|
|
12
|
+
export type RoutePath = Extract<Exclude<keyof PNextRoutes, '__pnext_internal_route_brand'>, string>
|
|
13
|
+
export type RouteParamValue = string | string[]
|
|
13
14
|
|
|
14
15
|
export type RouteParams<Route extends RoutePath> = PNextRoutes[Route] extends {
|
|
15
|
-
params: infer Params extends Record<string, RouteParamValue
|
|
16
|
+
params: infer Params extends Record<string, RouteParamValue>
|
|
16
17
|
}
|
|
17
18
|
? Params
|
|
18
|
-
: Record<string, never
|
|
19
|
+
: Record<string, never>
|
|
19
20
|
|
|
20
21
|
export type StaticParams<Route extends RoutePath> =
|
|
21
|
-
| RouteParams<Route>[]
|
|
22
|
-
| Promise<RouteParams<Route>[]>;
|
|
22
|
+
RouteParams<Route>[] | Promise<RouteParams<Route>[]>
|
|
23
23
|
|
|
24
24
|
export interface PNextConfig {
|
|
25
|
-
outDir?: string
|
|
26
|
-
basePath?: string
|
|
27
|
-
assetPrefix?: string
|
|
28
|
-
trailingSlash?: boolean
|
|
25
|
+
outDir?: string
|
|
26
|
+
basePath?: string
|
|
27
|
+
assetPrefix?: string
|
|
28
|
+
trailingSlash?: boolean
|
|
29
29
|
// Next's skipTrailingSlashRedirect: serve both slashed and unslashed URLs
|
|
30
30
|
// without a canonical 308/redirect, and never normalize trailing slashes on
|
|
31
31
|
// Link hrefs / client navigation (the raw path is preserved end to end).
|
|
32
|
-
skipTrailingSlashRedirect?: boolean
|
|
33
|
-
htmlLimitedBots?: RegExp
|
|
32
|
+
skipTrailingSlashRedirect?: boolean
|
|
33
|
+
htmlLimitedBots?: RegExp
|
|
34
|
+
// App-wide default prefetch mode for client-router links that set none of
|
|
35
|
+
// their own. `false` means links never prefetch unless they opt in.
|
|
36
|
+
prefetch?: PrefetchMode
|
|
34
37
|
// Emit browser sourcemaps from the production client build. Off by default,
|
|
35
38
|
// matching Next: shipping maps publishes your source to every visitor, and
|
|
36
39
|
// generating them costs real build time. Dev never emits them (the
|
|
37
40
|
// un-minified output is already readable).
|
|
38
|
-
productionBrowserSourceMaps?: boolean
|
|
39
|
-
workspaceRoot?: string
|
|
40
|
-
compat?: PNextCompatConfig
|
|
41
|
-
adapter?: PNextAdapterConfig
|
|
41
|
+
productionBrowserSourceMaps?: boolean
|
|
42
|
+
workspaceRoot?: string
|
|
43
|
+
compat?: PNextCompatConfig
|
|
44
|
+
adapter?: PNextAdapterConfig
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
/**
|
|
@@ -48,299 +51,297 @@ export interface PNextConfig {
|
|
|
48
51
|
* Entries are directory names (`storybook-static`) or file suffixes (`.map`).
|
|
49
52
|
*/
|
|
50
53
|
export interface PNextAdapterConfig {
|
|
51
|
-
exclude?: string[]
|
|
52
|
-
keep?: string[]
|
|
54
|
+
exclude?: string[]
|
|
55
|
+
keep?: string[]
|
|
53
56
|
}
|
|
54
57
|
|
|
55
58
|
export interface PNextCompatConfig {
|
|
56
|
-
next?: boolean
|
|
57
|
-
react?: boolean
|
|
58
|
-
reactCompiler?: boolean
|
|
59
|
+
next?: boolean
|
|
60
|
+
react?: boolean
|
|
61
|
+
reactCompiler?: boolean
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
export interface MetadataLink {
|
|
62
|
-
rel: string
|
|
63
|
-
url: string
|
|
64
|
-
dataPrecedence?: string
|
|
65
|
-
type?: string
|
|
66
|
-
media?: string
|
|
67
|
-
sizes?: string
|
|
68
|
-
as?: string
|
|
69
|
-
title?: string
|
|
70
|
-
hrefLang?: string
|
|
71
|
-
crossOrigin?: 'anonymous' | 'use-credentials' | ''
|
|
72
|
-
fetchPriority?: 'high' | 'low' | 'auto'
|
|
65
|
+
rel: string
|
|
66
|
+
url: string
|
|
67
|
+
dataPrecedence?: string
|
|
68
|
+
type?: string
|
|
69
|
+
media?: string
|
|
70
|
+
sizes?: string
|
|
71
|
+
as?: string
|
|
72
|
+
title?: string
|
|
73
|
+
hrefLang?: string
|
|
74
|
+
crossOrigin?: 'anonymous' | 'use-credentials' | ''
|
|
75
|
+
fetchPriority?: 'high' | 'low' | 'auto'
|
|
73
76
|
/** CSP nonce (Next §A8) — set for a manually-nonced next/script preload hint. */
|
|
74
|
-
nonce?: string
|
|
77
|
+
nonce?: string
|
|
75
78
|
}
|
|
76
79
|
|
|
77
80
|
/** A generic document resource hint. Compat owns any resource-specific attributes. */
|
|
78
81
|
export interface ResourceHint extends Omit<MetadataLink, 'url'> {
|
|
79
|
-
url?: string
|
|
80
|
-
attributes?: Readonly<Record<string, string
|
|
82
|
+
url?: string
|
|
83
|
+
attributes?: Readonly<Record<string, string>>
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
export type MetadataTitle =
|
|
84
|
-
| string
|
|
85
|
-
| number
|
|
86
|
-
| { absolute?: string; default?: string; template?: string | null };
|
|
87
|
+
string | number | { absolute?: string; default?: string; template?: string | null }
|
|
87
88
|
|
|
88
|
-
export type MetadataIcon = string | URL | (Partial<MetadataLink> & { url: string | URL })
|
|
89
|
+
export type MetadataIcon = string | URL | (Partial<MetadataLink> & { url: string | URL })
|
|
89
90
|
|
|
90
91
|
export interface MetadataIconGroups {
|
|
91
|
-
icon?: MetadataIcon | MetadataIcon[]
|
|
92
|
-
shortcut?: MetadataIcon | MetadataIcon[]
|
|
93
|
-
apple?: MetadataIcon | MetadataIcon[]
|
|
94
|
-
other?: MetadataIcon | MetadataIcon[]
|
|
92
|
+
icon?: MetadataIcon | MetadataIcon[]
|
|
93
|
+
shortcut?: MetadataIcon | MetadataIcon[]
|
|
94
|
+
apple?: MetadataIcon | MetadataIcon[]
|
|
95
|
+
other?: MetadataIcon | MetadataIcon[]
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
export interface MetadataAuthor {
|
|
98
|
-
name?: string
|
|
99
|
-
url?: string | URL
|
|
99
|
+
name?: string
|
|
100
|
+
url?: string | URL
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
export interface MetadataRobots {
|
|
103
|
-
index?: boolean
|
|
104
|
-
follow?: boolean
|
|
105
|
-
noarchive?: boolean
|
|
106
|
-
nosnippet?: boolean
|
|
107
|
-
noimageindex?: boolean
|
|
108
|
-
nocache?: boolean
|
|
109
|
-
googleBot?: MetadataRobots & Record<string, string | number | boolean | undefined
|
|
104
|
+
index?: boolean
|
|
105
|
+
follow?: boolean
|
|
106
|
+
noarchive?: boolean
|
|
107
|
+
nosnippet?: boolean
|
|
108
|
+
noimageindex?: boolean
|
|
109
|
+
nocache?: boolean
|
|
110
|
+
googleBot?: MetadataRobots & Record<string, string | number | boolean | undefined>
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
export type MetadataImage =
|
|
113
114
|
| string
|
|
114
115
|
| URL
|
|
115
116
|
| {
|
|
116
|
-
url: string | URL
|
|
117
|
-
secureUrl?: string | URL
|
|
118
|
-
width?: string | number
|
|
119
|
-
height?: string | number
|
|
120
|
-
alt?: string
|
|
121
|
-
type?: string
|
|
122
|
-
}
|
|
117
|
+
url: string | URL
|
|
118
|
+
secureUrl?: string | URL
|
|
119
|
+
width?: string | number
|
|
120
|
+
height?: string | number
|
|
121
|
+
alt?: string
|
|
122
|
+
type?: string
|
|
123
|
+
}
|
|
123
124
|
|
|
124
125
|
export interface MetadataOpenGraph {
|
|
125
|
-
title?: MetadataTitle
|
|
126
|
-
description?: string
|
|
127
|
-
url?: string | URL
|
|
128
|
-
siteName?: string
|
|
129
|
-
locale?: string
|
|
130
|
-
type?: string
|
|
131
|
-
images?: MetadataImage | MetadataImage[]
|
|
132
|
-
videos?: MetadataImage | MetadataImage[]
|
|
133
|
-
audio?: MetadataImage | MetadataImage[]
|
|
134
|
-
publishedTime?: string
|
|
135
|
-
authors?: string | string[]
|
|
136
|
-
emails?: string | string[]
|
|
137
|
-
phoneNumbers?: string | string[]
|
|
138
|
-
faxNumbers?: string | string[]
|
|
126
|
+
title?: MetadataTitle
|
|
127
|
+
description?: string
|
|
128
|
+
url?: string | URL
|
|
129
|
+
siteName?: string
|
|
130
|
+
locale?: string
|
|
131
|
+
type?: string
|
|
132
|
+
images?: MetadataImage | MetadataImage[]
|
|
133
|
+
videos?: MetadataImage | MetadataImage[]
|
|
134
|
+
audio?: MetadataImage | MetadataImage[]
|
|
135
|
+
publishedTime?: string
|
|
136
|
+
authors?: string | string[]
|
|
137
|
+
emails?: string | string[]
|
|
138
|
+
phoneNumbers?: string | string[]
|
|
139
|
+
faxNumbers?: string | string[]
|
|
139
140
|
}
|
|
140
141
|
|
|
141
142
|
export interface MetadataTwitter {
|
|
142
|
-
card?: string
|
|
143
|
-
site?: string
|
|
144
|
-
siteId?: string
|
|
145
|
-
creator?: string
|
|
146
|
-
creatorId?: string
|
|
147
|
-
title?: MetadataTitle
|
|
148
|
-
description?: string
|
|
149
|
-
images?: MetadataImage | MetadataImage[]
|
|
143
|
+
card?: string
|
|
144
|
+
site?: string
|
|
145
|
+
siteId?: string
|
|
146
|
+
creator?: string
|
|
147
|
+
creatorId?: string
|
|
148
|
+
title?: MetadataTitle
|
|
149
|
+
description?: string
|
|
150
|
+
images?: MetadataImage | MetadataImage[]
|
|
150
151
|
players?: {
|
|
151
|
-
playerUrl?: string | URL
|
|
152
|
-
streamUrl?: string | URL
|
|
153
|
-
width?: string | number
|
|
154
|
-
height?: string | number
|
|
155
|
-
}
|
|
152
|
+
playerUrl?: string | URL
|
|
153
|
+
streamUrl?: string | URL
|
|
154
|
+
width?: string | number
|
|
155
|
+
height?: string | number
|
|
156
|
+
}
|
|
156
157
|
app?: {
|
|
157
|
-
name?: string
|
|
158
|
-
id?: Record<string, string | undefined
|
|
159
|
-
url?: Record<string, string | URL | undefined
|
|
160
|
-
}
|
|
158
|
+
name?: string
|
|
159
|
+
id?: Record<string, string | undefined>
|
|
160
|
+
url?: Record<string, string | URL | undefined>
|
|
161
|
+
}
|
|
161
162
|
}
|
|
162
163
|
|
|
163
164
|
export interface MetadataAlternates {
|
|
164
|
-
canonical?: string | URL | { url: string | URL }
|
|
165
|
-
languages?: Record<string, string | URL
|
|
166
|
-
media?: Record<string, string | URL
|
|
165
|
+
canonical?: string | URL | { url: string | URL }
|
|
166
|
+
languages?: Record<string, string | URL>
|
|
167
|
+
media?: Record<string, string | URL>
|
|
167
168
|
types?: Record<
|
|
168
169
|
string,
|
|
169
170
|
| string
|
|
170
171
|
| URL
|
|
171
172
|
| { url: string | URL; title?: string }
|
|
172
173
|
| (string | URL | { url: string | URL; title?: string })[]
|
|
173
|
-
|
|
174
|
+
>
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
export interface Metadata {
|
|
177
|
-
metadataBase?: string | URL
|
|
178
|
-
title?: MetadataTitle
|
|
179
|
-
description?: string
|
|
180
|
-
lang?: string
|
|
181
|
-
keywords?: string | number | (string | number)[]
|
|
182
|
-
authors?: string | MetadataAuthor | (string | MetadataAuthor)[]
|
|
183
|
-
generator?: string
|
|
184
|
-
applicationName?: string
|
|
185
|
-
referrer?: string
|
|
186
|
-
robots?: string | MetadataRobots
|
|
187
|
-
openGraph?: MetadataOpenGraph
|
|
188
|
-
twitter?: MetadataTwitter
|
|
189
|
-
alternates?: MetadataAlternates
|
|
178
|
+
metadataBase?: string | URL
|
|
179
|
+
title?: MetadataTitle
|
|
180
|
+
description?: string
|
|
181
|
+
lang?: string
|
|
182
|
+
keywords?: string | number | (string | number)[]
|
|
183
|
+
authors?: string | MetadataAuthor | (string | MetadataAuthor)[]
|
|
184
|
+
generator?: string
|
|
185
|
+
applicationName?: string
|
|
186
|
+
referrer?: string
|
|
187
|
+
robots?: string | MetadataRobots
|
|
188
|
+
openGraph?: MetadataOpenGraph
|
|
189
|
+
twitter?: MetadataTwitter
|
|
190
|
+
alternates?: MetadataAlternates
|
|
190
191
|
pagination?: {
|
|
191
|
-
previous?: string | URL
|
|
192
|
-
next?: string | URL
|
|
193
|
-
}
|
|
194
|
-
icons?: MetadataIcon | MetadataIcon[] | MetadataIconGroups
|
|
195
|
-
manifest?: string | URL
|
|
196
|
-
creator?: string
|
|
197
|
-
publisher?: string
|
|
192
|
+
previous?: string | URL
|
|
193
|
+
next?: string | URL
|
|
194
|
+
}
|
|
195
|
+
icons?: MetadataIcon | MetadataIcon[] | MetadataIconGroups
|
|
196
|
+
manifest?: string | URL
|
|
197
|
+
creator?: string
|
|
198
|
+
publisher?: string
|
|
198
199
|
formatDetection?: {
|
|
199
|
-
email?: boolean
|
|
200
|
-
address?: boolean
|
|
201
|
-
telephone?: boolean
|
|
202
|
-
url?: boolean
|
|
203
|
-
}
|
|
200
|
+
email?: boolean
|
|
201
|
+
address?: boolean
|
|
202
|
+
telephone?: boolean
|
|
203
|
+
url?: boolean
|
|
204
|
+
}
|
|
204
205
|
verification?: {
|
|
205
|
-
google?: string | string[]
|
|
206
|
-
yahoo?: string | string[]
|
|
207
|
-
yandex?: string | string[]
|
|
208
|
-
other?: Record<string, string | string[]
|
|
209
|
-
}
|
|
206
|
+
google?: string | string[]
|
|
207
|
+
yahoo?: string | string[]
|
|
208
|
+
yandex?: string | string[]
|
|
209
|
+
other?: Record<string, string | string[]>
|
|
210
|
+
}
|
|
210
211
|
itunes?: {
|
|
211
|
-
appId?: string
|
|
212
|
-
appArgument?: string
|
|
213
|
-
}
|
|
212
|
+
appId?: string
|
|
213
|
+
appArgument?: string
|
|
214
|
+
}
|
|
214
215
|
appleWebApp?:
|
|
215
216
|
| boolean
|
|
216
217
|
| {
|
|
217
|
-
capable?: boolean
|
|
218
|
-
title?: string
|
|
219
|
-
statusBarStyle?: string
|
|
218
|
+
capable?: boolean
|
|
219
|
+
title?: string
|
|
220
|
+
statusBarStyle?: string
|
|
220
221
|
startupImage?:
|
|
221
222
|
| string
|
|
222
223
|
| URL
|
|
223
224
|
| { url: string | URL; media?: string }
|
|
224
|
-
| (string | URL | { url: string | URL; media?: string })[]
|
|
225
|
-
}
|
|
225
|
+
| (string | URL | { url: string | URL; media?: string })[]
|
|
226
|
+
}
|
|
226
227
|
facebook?: {
|
|
227
|
-
appId?: string
|
|
228
|
-
admins?: string | string[]
|
|
229
|
-
}
|
|
228
|
+
appId?: string
|
|
229
|
+
admins?: string | string[]
|
|
230
|
+
}
|
|
230
231
|
pinterest?: {
|
|
231
|
-
richPin?: boolean
|
|
232
|
-
}
|
|
233
|
-
appLinks?: Record<string, Record<string, string | boolean | undefined
|
|
234
|
-
other?: Record<string, string | string[]
|
|
235
|
-
links?: MetadataLink[]
|
|
232
|
+
richPin?: boolean
|
|
233
|
+
}
|
|
234
|
+
appLinks?: Record<string, Record<string, string | boolean | undefined>>
|
|
235
|
+
other?: Record<string, string | string[]>
|
|
236
|
+
links?: MetadataLink[]
|
|
236
237
|
}
|
|
237
238
|
|
|
238
|
-
export type ThemeColor = string | { color: string; media?: string }
|
|
239
|
+
export type ThemeColor = string | { color: string; media?: string }
|
|
239
240
|
|
|
240
241
|
export interface Viewport {
|
|
241
|
-
width?: string | number
|
|
242
|
-
initialScale?: number
|
|
243
|
-
minimumScale?: number
|
|
244
|
-
maximumScale?: number
|
|
245
|
-
userScalable?: boolean
|
|
246
|
-
viewportFit?: 'auto' | 'contain' | 'cover'
|
|
247
|
-
interactiveWidget?: 'resizes-visual' | 'resizes-content' | 'overlays-content'
|
|
248
|
-
themeColor?: ThemeColor | ThemeColor[]
|
|
249
|
-
colorScheme?: string
|
|
242
|
+
width?: string | number
|
|
243
|
+
initialScale?: number
|
|
244
|
+
minimumScale?: number
|
|
245
|
+
maximumScale?: number
|
|
246
|
+
userScalable?: boolean
|
|
247
|
+
viewportFit?: 'auto' | 'contain' | 'cover'
|
|
248
|
+
interactiveWidget?: 'resizes-visual' | 'resizes-content' | 'overlays-content'
|
|
249
|
+
themeColor?: ThemeColor | ThemeColor[]
|
|
250
|
+
colorScheme?: string
|
|
250
251
|
}
|
|
251
252
|
|
|
252
253
|
export interface NextRequestCookie {
|
|
253
|
-
name: string
|
|
254
|
-
value: string
|
|
254
|
+
name: string
|
|
255
|
+
value: string
|
|
255
256
|
}
|
|
256
257
|
|
|
257
258
|
export interface NextRequestCookies {
|
|
258
|
-
get(name: string): NextRequestCookie | undefined
|
|
259
|
-
getAll(name?: string): NextRequestCookie[]
|
|
260
|
-
has(name: string): boolean
|
|
261
|
-
set(name: string, value: string): this
|
|
262
|
-
delete(name: string): boolean
|
|
263
|
-
clear(): void
|
|
259
|
+
get(name: string): NextRequestCookie | undefined
|
|
260
|
+
getAll(name?: string): NextRequestCookie[]
|
|
261
|
+
has(name: string): boolean
|
|
262
|
+
set(name: string, value: string): this
|
|
263
|
+
delete(name: string): boolean
|
|
264
|
+
clear(): void
|
|
264
265
|
}
|
|
265
266
|
|
|
266
267
|
export interface NextResponseCookies {
|
|
267
268
|
set(options: {
|
|
268
|
-
name: string
|
|
269
|
-
value: string
|
|
270
|
-
path?: string
|
|
271
|
-
maxAge?: number
|
|
272
|
-
httpOnly?: boolean
|
|
273
|
-
secure?: boolean
|
|
274
|
-
sameSite?: 'strict' | 'lax' | 'none'
|
|
275
|
-
}): this
|
|
269
|
+
name: string
|
|
270
|
+
value: string
|
|
271
|
+
path?: string
|
|
272
|
+
maxAge?: number
|
|
273
|
+
httpOnly?: boolean
|
|
274
|
+
secure?: boolean
|
|
275
|
+
sameSite?: 'strict' | 'lax' | 'none'
|
|
276
|
+
}): this
|
|
276
277
|
set(
|
|
277
278
|
name: string,
|
|
278
279
|
value: string,
|
|
279
280
|
options?: {
|
|
280
|
-
path?: string
|
|
281
|
-
maxAge?: number
|
|
282
|
-
httpOnly?: boolean
|
|
283
|
-
secure?: boolean
|
|
284
|
-
sameSite?: 'strict' | 'lax' | 'none'
|
|
281
|
+
path?: string
|
|
282
|
+
maxAge?: number
|
|
283
|
+
httpOnly?: boolean
|
|
284
|
+
secure?: boolean
|
|
285
|
+
sameSite?: 'strict' | 'lax' | 'none'
|
|
285
286
|
},
|
|
286
|
-
): this
|
|
287
|
-
delete(name: string): this
|
|
287
|
+
): this
|
|
288
|
+
delete(name: string): this
|
|
288
289
|
}
|
|
289
290
|
|
|
290
291
|
export interface NextURL extends URL {
|
|
291
|
-
clone(): NextURL
|
|
292
|
+
clone(): NextURL
|
|
292
293
|
/** The configured basePath prefix ('' when unset), mirroring Next's NextURL. */
|
|
293
|
-
basePath: string
|
|
294
|
+
basePath: string
|
|
294
295
|
/** The active locale ('' without i18n), mirroring Next's NextURL. */
|
|
295
|
-
locale: string
|
|
296
|
+
locale: string
|
|
296
297
|
}
|
|
297
298
|
|
|
298
299
|
export interface NextRequest extends Request {
|
|
299
|
-
cookies: NextRequestCookies
|
|
300
|
-
nextUrl: NextURL
|
|
300
|
+
cookies: NextRequestCookies
|
|
301
|
+
nextUrl: NextURL
|
|
301
302
|
}
|
|
302
303
|
|
|
303
304
|
export interface NextFetchEvent {
|
|
304
|
-
waitUntil(promise: Promise<unknown>): void
|
|
305
|
+
waitUntil(promise: Promise<unknown>): void
|
|
305
306
|
}
|
|
306
307
|
|
|
307
308
|
type ParamsInput<P> = P extends RoutePath
|
|
308
309
|
? RouteParams<P>
|
|
309
310
|
: P extends Record<string, RouteParamValue>
|
|
310
311
|
? P
|
|
311
|
-
: Record<string, RouteParamValue
|
|
312
|
+
: Record<string, RouteParamValue>
|
|
312
313
|
|
|
313
|
-
export type PageSearchParams = Record<string, string | string[] | undefined
|
|
314
|
+
export type PageSearchParams = Record<string, string | string[] | undefined>
|
|
314
315
|
|
|
315
316
|
export interface PageProps<P = Record<string, RouteParamValue>> {
|
|
316
|
-
params: Promise<ParamsInput<P
|
|
317
|
-
searchParams: Promise<PageSearchParams
|
|
318
|
-
request?: NextRequest
|
|
317
|
+
params: Promise<ParamsInput<P>>
|
|
318
|
+
searchParams: Promise<PageSearchParams>
|
|
319
|
+
request?: NextRequest
|
|
319
320
|
}
|
|
320
321
|
|
|
321
322
|
export interface RouteContext<P = Record<string, RouteParamValue>> {
|
|
322
|
-
params: Promise<ParamsInput<P
|
|
323
|
+
params: Promise<ParamsInput<P>>
|
|
323
324
|
}
|
|
324
325
|
|
|
325
|
-
export type ServerComponentResult = ComponentChildren | void
|
|
326
|
+
export type ServerComponentResult = ComponentChildren | void
|
|
326
327
|
|
|
327
328
|
export type ServerComponent<Props = Record<string, never>> = (
|
|
328
329
|
props: Props,
|
|
329
|
-
) => ServerComponentResult | Promise<ServerComponentResult
|
|
330
|
+
) => ServerComponentResult | Promise<ServerComponentResult>
|
|
330
331
|
|
|
331
332
|
export interface LayoutProps {
|
|
332
|
-
children: ComponentChildren
|
|
333
|
-
params: Promise<Record<string, RouteParamValue
|
|
334
|
-
searchParams: Promise<PageSearchParams
|
|
335
|
-
request?: NextRequest
|
|
333
|
+
children: ComponentChildren
|
|
334
|
+
params: Promise<Record<string, RouteParamValue>>
|
|
335
|
+
searchParams: Promise<PageSearchParams>
|
|
336
|
+
request?: NextRequest
|
|
336
337
|
}
|
|
337
338
|
|
|
338
339
|
export type RouteHandler = {
|
|
339
|
-
bivarianceHack(request: NextRequest, context: RouteContext): Response | Promise<Response
|
|
340
|
-
}['bivarianceHack']
|
|
340
|
+
bivarianceHack(request: NextRequest, context: RouteContext): Response | Promise<Response>
|
|
341
|
+
}['bivarianceHack']
|
|
341
342
|
|
|
342
343
|
/** Kind of intercepting-route marker on a route directory (Next.js convention). */
|
|
343
|
-
export type InterceptionMarker = '(.)' | '(..)' | '(..)(..)' | '(...)'
|
|
344
|
+
export type InterceptionMarker = '(.)' | '(..)' | '(..)(..)' | '(...)'
|
|
344
345
|
|
|
345
346
|
/**
|
|
346
347
|
* Parallel-route render state carried across soft navigations. The client
|
|
@@ -349,38 +350,38 @@ export type InterceptionMarker = '(.)' | '(..)' | '(..)(..)' | '(...)';
|
|
|
349
350
|
*/
|
|
350
351
|
export interface NavState {
|
|
351
352
|
/** Pathname the children tree rendered from. */
|
|
352
|
-
children?: string
|
|
353
|
+
children?: string
|
|
353
354
|
/**
|
|
354
355
|
* Search string (`?a=b`, may be empty or absent) the children tree rendered with. On a host render, where
|
|
355
356
|
* interception keeps the current page visible, the children page re-renders with THIS query, not the target
|
|
356
357
|
* URL's - Next's per-segment refetch-URL semantics preserve each slot's searchParams.
|
|
357
358
|
*/
|
|
358
|
-
childrenSearch?: string
|
|
359
|
+
childrenSearch?: string
|
|
359
360
|
/**
|
|
360
361
|
* App-relative slot directory -> source URL (`pathname` or
|
|
361
362
|
* `pathname?query`) its content rendered from. The query, when present, is
|
|
362
363
|
* the searchParams the slot's page re-renders with when re-rendered from
|
|
363
364
|
* this recorded source.
|
|
364
365
|
*/
|
|
365
|
-
slots?: Record<string, string
|
|
366
|
+
slots?: Record<string, string>
|
|
366
367
|
/**
|
|
367
368
|
* The children slot rendered a `default.*` because no page matched this path (Next's `__DEFAULT__`
|
|
368
369
|
* segment). `useSelectedLayoutSegment()` with no parallel-route key reports NOTHING for such a slot - the
|
|
369
370
|
* path's segments belong to whichever parallel slot did match, not to children.
|
|
370
371
|
*/
|
|
371
|
-
childrenDefault?: boolean
|
|
372
|
+
childrenDefault?: boolean
|
|
372
373
|
/**
|
|
373
374
|
* The served document is a fully static (prerendered) route. Inlined so a
|
|
374
375
|
* hard load can seed its prefetch entry with the static reuse window rather
|
|
375
376
|
* than the dynamic default. Mirrors the `/_tree` payload's `isStatic`.
|
|
376
377
|
*/
|
|
377
|
-
isStatic?: boolean
|
|
378
|
+
isStatic?: boolean
|
|
378
379
|
/**
|
|
379
380
|
* The route's `x-nextjs-stale-time` window (seconds) from its `use cache`
|
|
380
381
|
* `cacheLife()`, inlined for the same hard-load seeding path. Mirrors the
|
|
381
382
|
* `/_tree` payload's `staleTime`.
|
|
382
383
|
*/
|
|
383
|
-
staleTime?: number
|
|
384
|
+
staleTime?: number
|
|
384
385
|
/**
|
|
385
386
|
* The served document was resumed from a BAKED SHELL (a fallback shell or a
|
|
386
387
|
* sub-shell), so the markup above its dynamic holes is a prerender even though
|
|
@@ -388,7 +389,7 @@ export interface NavState {
|
|
|
388
389
|
* pre-hydration stage as a reusable static stage on the strength of this;
|
|
389
390
|
* `isStatic` stays false, so the whole-document reuse window is untouched.
|
|
390
391
|
*/
|
|
391
|
-
staticStage?: boolean
|
|
392
|
+
staticStage?: boolean
|
|
392
393
|
/**
|
|
393
394
|
* The served document is an interception HOST render: the URL is the intercepted target but the children
|
|
394
395
|
* tree kept rendering the host page. Such a document is bound to its host - the client must NOT reuse it
|
|
@@ -396,7 +397,7 @@ export interface NavState {
|
|
|
396
397
|
* Stamped by the server, which alone knows the pre-rewrite host path; the client cannot infer it by
|
|
397
398
|
* comparing `children` to the browser pathname under a rewrite.
|
|
398
399
|
*/
|
|
399
|
-
hostRender?: boolean
|
|
400
|
+
hostRender?: boolean
|
|
400
401
|
}
|
|
401
402
|
|
|
402
403
|
/**
|
|
@@ -406,43 +407,43 @@ export interface NavState {
|
|
|
406
407
|
*/
|
|
407
408
|
export interface RouteInterception {
|
|
408
409
|
/** The raw marker that prefixed the intercepted segment. */
|
|
409
|
-
marker: InterceptionMarker
|
|
410
|
+
marker: InterceptionMarker
|
|
410
411
|
/** Route path of the level the interceptor renders within (e.g. `/feed`). */
|
|
411
|
-
base: string
|
|
412
|
+
base: string
|
|
412
413
|
/** Regex source (anchored by the matcher) for paths at or below `base`. */
|
|
413
|
-
basePattern: string
|
|
414
|
+
basePattern: string
|
|
414
415
|
/**
|
|
415
416
|
* Absolute path of the `@slot` directory the interceptor renders into. When
|
|
416
417
|
* set, the interceptor renders as slot content of the current page; when
|
|
417
418
|
* absent, the interceptor page replaces the children tree.
|
|
418
419
|
*/
|
|
419
|
-
slotDir?: string
|
|
420
|
+
slotDir?: string
|
|
420
421
|
}
|
|
421
422
|
|
|
422
423
|
export interface RouteManifestEntry {
|
|
423
|
-
id: string
|
|
424
|
-
kind: 'page' | 'handler'
|
|
425
|
-
route: string
|
|
426
|
-
pattern: string
|
|
427
|
-
file: string
|
|
428
|
-
params: string[]
|
|
429
|
-
catchAll?: string
|
|
424
|
+
id: string
|
|
425
|
+
kind: 'page' | 'handler'
|
|
426
|
+
route: string
|
|
427
|
+
pattern: string
|
|
428
|
+
file: string
|
|
429
|
+
params: string[]
|
|
430
|
+
catchAll?: string
|
|
430
431
|
/**
|
|
431
432
|
* The trailing catch-all is optional (`[[...slug]]`): it matches both the
|
|
432
433
|
* parent path and nested paths. When set, `catchAll` holds the param name and
|
|
433
434
|
* the pattern's final group is `(?:/(.*))?`.
|
|
434
435
|
*/
|
|
435
|
-
catchAllOptional?: boolean
|
|
436
|
-
mode: RouteMode
|
|
437
|
-
hasStaticParams: boolean
|
|
438
|
-
usesRequest: boolean
|
|
436
|
+
catchAllOptional?: boolean
|
|
437
|
+
mode: RouteMode
|
|
438
|
+
hasStaticParams: boolean
|
|
439
|
+
usesRequest: boolean
|
|
439
440
|
/**
|
|
440
441
|
* Route handler that calls a revalidation API (revalidatePath/revalidateTag/
|
|
441
442
|
* expirePath/expireTag). Such a handler performs a side effect that cannot be
|
|
442
443
|
* prerendered, so it stays dynamic even when a `revalidate` export or
|
|
443
444
|
* generateStaticParams would otherwise opt it into static ISR output.
|
|
444
445
|
*/
|
|
445
|
-
handlerUsesRevalidationApi?: boolean
|
|
446
|
+
handlerUsesRevalidationApi?: boolean
|
|
446
447
|
/**
|
|
447
448
|
* Route declares `export const dynamic = 'error'` AND statically references a
|
|
448
449
|
* dynamic data API (cookies()/headers()/connection()/searchParams for pages,
|
|
@@ -451,40 +452,40 @@ export interface RouteManifestEntry {
|
|
|
451
452
|
* names in that error (e.g. `cookies()`, `nextUrl.toString`). Set at scan time
|
|
452
453
|
* and enforced in the build's prerender pass.
|
|
453
454
|
*/
|
|
454
|
-
dynamicErrorApi?: string
|
|
455
|
-
client: boolean
|
|
456
|
-
clientReferences: import('./client/reference').ClientReference[]
|
|
457
|
-
cssImports: string[]
|
|
458
|
-
cssAssets?: string[]
|
|
459
|
-
sourceFiles: string[]
|
|
455
|
+
dynamicErrorApi?: string
|
|
456
|
+
client: boolean
|
|
457
|
+
clientReferences: import('./client/reference').ClientReference[]
|
|
458
|
+
cssImports: string[]
|
|
459
|
+
cssAssets?: string[]
|
|
460
|
+
sourceFiles: string[]
|
|
460
461
|
stream?: {
|
|
461
|
-
hasLoadingBoundary?: boolean
|
|
462
|
-
ancestorClientReferences?: string[]
|
|
463
|
-
}
|
|
464
|
-
clientEntry?: string
|
|
462
|
+
hasLoadingBoundary?: boolean
|
|
463
|
+
ancestorClientReferences?: string[]
|
|
464
|
+
}
|
|
465
|
+
clientEntry?: string
|
|
465
466
|
/** Static import closure of the client entry, for modulepreload links. */
|
|
466
|
-
clientEntryImports?: string[]
|
|
467
|
+
clientEntryImports?: string[]
|
|
467
468
|
/** Dynamic import closure of the client entry, for low-priority preload links. */
|
|
468
|
-
clientDynamicImports?: string[]
|
|
469
|
-
maxDuration?: number
|
|
469
|
+
clientDynamicImports?: string[]
|
|
470
|
+
maxDuration?: number
|
|
470
471
|
/** Route opts into partial prerendering via `export const experimental_ppr = true`. */
|
|
471
|
-
ppr?: boolean
|
|
472
|
+
ppr?: boolean
|
|
472
473
|
/** Merged Next segment config across the page/handler and its layout chain. */
|
|
473
|
-
segmentConfig?: RouteSegmentConfig
|
|
474
|
+
segmentConfig?: RouteSegmentConfig
|
|
474
475
|
/** Code-based metadata route synthesized from robots/sitemap/icon/etc. */
|
|
475
|
-
metadataRoute?: MetadataRouteEntry
|
|
476
|
+
metadataRoute?: MetadataRouteEntry
|
|
476
477
|
/** Param sets prerendered at build from params(). Compat aliases generateStaticParams to params. */
|
|
477
|
-
prerenderedParams?: Record<string, RouteParamValue>[]
|
|
478
|
+
prerenderedParams?: Record<string, RouteParamValue>[]
|
|
478
479
|
/**
|
|
479
480
|
* Per-prerendered-URL vary sets tracked by the BUILD render, keyed by the concrete pathname. A request-time
|
|
480
481
|
* render answered from that prerender executes no user code, so it tracks nothing and would publish
|
|
481
482
|
* "unknown" (exact-URL keying) - these are the sets it publishes instead.
|
|
482
483
|
*/
|
|
483
|
-
prerenderVary?: Record<string, { vary: string[]; layoutVary: string[]; pageVary: string[] }
|
|
484
|
+
prerenderVary?: Record<string, { vary: string[]; layoutVary: string[]; pageVary: string[] }>
|
|
484
485
|
/** Suspense boundary ids left as dynamic holes in the prebuilt PPR shell. */
|
|
485
|
-
pprHoles?: number[]
|
|
486
|
+
pprHoles?: number[]
|
|
486
487
|
/** Metadata postponed out of the static PPR shell and resumed into the body. */
|
|
487
|
-
pprMetadata?: boolean
|
|
488
|
+
pprMetadata?: boolean
|
|
488
489
|
/**
|
|
489
490
|
* Effective `use cache` cacheLife captured from the route's shell prerender.
|
|
490
491
|
* A prebuilt page never re-runs its cache scopes at serve time, so start.ts
|
|
@@ -492,10 +493,10 @@ export interface RouteManifestEntry {
|
|
|
492
493
|
* pure static HIT/MISS (the render-time header finalizer never fires there).
|
|
493
494
|
*/
|
|
494
495
|
cacheLife?: {
|
|
495
|
-
revalidateSeconds?: number
|
|
496
|
-
expireSeconds?: number
|
|
497
|
-
staleSeconds?: number
|
|
498
|
-
}
|
|
496
|
+
revalidateSeconds?: number
|
|
497
|
+
expireSeconds?: number
|
|
498
|
+
staleSeconds?: number
|
|
499
|
+
}
|
|
499
500
|
/**
|
|
500
501
|
* The `Link` response header captured from the route's shell prerender (font
|
|
501
502
|
* preloads + react-dom preload()/preconnect() hints, capped by
|
|
@@ -503,13 +504,13 @@ export interface RouteManifestEntry {
|
|
|
503
504
|
* the components that emitted the hints, so start.ts re-emits the header
|
|
504
505
|
* from here (mirrors Next serving the prerender's stored headers).
|
|
505
506
|
*/
|
|
506
|
-
linkHeader?: string
|
|
507
|
+
linkHeader?: string
|
|
507
508
|
/**
|
|
508
509
|
* Cache tags collected across the route's shell (and sub-shell) prerenders - cacheTag(),
|
|
509
510
|
* unstable_cache({tags}), fetch({next:{tags}}). A prebuilt PPR shell must stop serving once one of these
|
|
510
511
|
* tags, or the route's path, is revalidated; loadPprShell compares them against the shell file's mtime.
|
|
511
512
|
*/
|
|
512
|
-
cacheTags?: string[]
|
|
513
|
+
cacheTags?: string[]
|
|
513
514
|
/**
|
|
514
515
|
* Prebuilt sub-shells at descending param specificity. Each entry fixes a leading prefix of params
|
|
515
516
|
* (`concreteParams`) - those render buildtime - while the remaining route params hang. Ordered MOST-specific
|
|
@@ -517,49 +518,49 @@ export interface RouteManifestEntry {
|
|
|
517
518
|
* least-specific fallback. `key` is the on-disk signature; `holes` are that shell's own dynamic hole ids.
|
|
518
519
|
*/
|
|
519
520
|
pprSubShells?: {
|
|
520
|
-
key: string
|
|
521
|
-
concreteParams: Record<string, RouteParamValue
|
|
522
|
-
holes: number[]
|
|
523
|
-
}[]
|
|
521
|
+
key: string
|
|
522
|
+
concreteParams: Record<string, RouteParamValue>
|
|
523
|
+
holes: number[]
|
|
524
|
+
}[]
|
|
524
525
|
/**
|
|
525
526
|
* `template.*` files from app root to the route's own segment, parallel to
|
|
526
527
|
* the layout chain. A template re-mounts on navigation where a layout persists.
|
|
527
528
|
*/
|
|
528
|
-
templateFiles?: string[]
|
|
529
|
+
templateFiles?: string[]
|
|
529
530
|
/** `forbidden.*` files nearest-last (root->leaf); COMPAT authInterrupts. */
|
|
530
|
-
forbiddenFiles?: string[]
|
|
531
|
+
forbiddenFiles?: string[]
|
|
531
532
|
/** `unauthorized.*` files nearest-last (root->leaf); COMPAT authInterrupts. */
|
|
532
|
-
unauthorizedFiles?: string[]
|
|
533
|
+
unauthorizedFiles?: string[]
|
|
533
534
|
/**
|
|
534
535
|
* Parallel-route `@slot` directories (absolute) along the route's layout
|
|
535
536
|
* chain, root->leaf. Presence means slot content participates in rendering
|
|
536
537
|
* and soft navigations must render dynamically.
|
|
537
538
|
*/
|
|
538
|
-
slotDirs?: string[]
|
|
539
|
+
slotDirs?: string[]
|
|
539
540
|
/**
|
|
540
541
|
* Entry synthesized from a parallel slot's page: the URL is only reachable
|
|
541
542
|
* because a slot matches it. `file` anchors the layout chain; the children
|
|
542
543
|
* tree renders `childrenDefault` (or nothing) instead of importing `file`.
|
|
543
544
|
*/
|
|
544
|
-
synthetic?: boolean
|
|
545
|
+
synthetic?: boolean
|
|
545
546
|
/** Slot directory whose page produced this synthetic route. */
|
|
546
|
-
syntheticSlotDir?: string
|
|
547
|
+
syntheticSlotDir?: string
|
|
547
548
|
/** `default.*` file rendered as children for a synthetic entry. */
|
|
548
|
-
childrenDefault?: string
|
|
549
|
+
childrenDefault?: string
|
|
549
550
|
/** Intercepting-route metadata, when this route is an interceptor. */
|
|
550
|
-
interception?: RouteInterception
|
|
551
|
+
interception?: RouteInterception
|
|
551
552
|
/**
|
|
552
553
|
* Ship the soft-navigation runtime even without client references. Derived:
|
|
553
554
|
* true exactly when `clientEntryReasons` is non-empty. Kept as its own field
|
|
554
555
|
* because it is what every consumer asks and what the manifest carries.
|
|
555
556
|
*/
|
|
556
|
-
needsRouterEntry?: boolean
|
|
557
|
+
needsRouterEntry?: boolean
|
|
557
558
|
/**
|
|
558
559
|
* WHY this route needs the client entry - one entry per fact the scan (or the build) observed. The client
|
|
559
560
|
* build gates its feature regions on these, so a `<Link>`-only page never ships the action machinery;
|
|
560
561
|
* collapsing them back into the boolean above loses exactly that.
|
|
561
562
|
*/
|
|
562
|
-
clientEntryReasons?: ClientEntryReason[]
|
|
563
|
+
clientEntryReasons?: ClientEntryReason[]
|
|
563
564
|
}
|
|
564
565
|
|
|
565
566
|
/**
|
|
@@ -575,126 +576,114 @@ export interface RouteManifestEntry {
|
|
|
575
576
|
* route file can start a soft navigation
|
|
576
577
|
*/
|
|
577
578
|
export type ClientEntryReason =
|
|
578
|
-
|
|
579
|
-
| 'parallel-routes'
|
|
580
|
-
| 'link'
|
|
581
|
-
| 'router-api'
|
|
582
|
-
| 'actions'
|
|
583
|
-
| 'form'
|
|
584
|
-
| 'control-flow';
|
|
579
|
+
'compat-parity' | 'parallel-routes' | 'link' | 'router-api' | 'actions' | 'form' | 'control-flow'
|
|
585
580
|
|
|
586
581
|
export type MetadataRouteKind =
|
|
587
|
-
| 'icon'
|
|
588
|
-
| 'apple-icon'
|
|
589
|
-
| 'opengraph-image'
|
|
590
|
-
| 'twitter-image'
|
|
591
|
-
| 'robots'
|
|
592
|
-
| 'sitemap'
|
|
593
|
-
| 'manifest';
|
|
582
|
+
'icon' | 'apple-icon' | 'opengraph-image' | 'twitter-image' | 'robots' | 'sitemap' | 'manifest'
|
|
594
583
|
|
|
595
584
|
export interface MetadataRouteEntry {
|
|
596
|
-
kind: MetadataRouteKind
|
|
597
|
-
generatedParam?: string
|
|
585
|
+
kind: MetadataRouteKind
|
|
586
|
+
generatedParam?: string
|
|
598
587
|
/**
|
|
599
588
|
* Concrete pathnames the generated-param expansion resolved to at build (generateSitemaps /
|
|
600
589
|
* generateImageMetadata ids). The route pattern itself carries a param so it is never `mode: 'static'`, but
|
|
601
590
|
* every id is known ahead of time - Next lists each expanded pathname as a prerendered route. Recorded
|
|
602
591
|
* during the handler prerender pass.
|
|
603
592
|
*/
|
|
604
|
-
generatedRoutes?: string[]
|
|
593
|
+
generatedRoutes?: string[]
|
|
605
594
|
}
|
|
606
595
|
|
|
607
596
|
export interface StaticMetadataFileEntry {
|
|
608
|
-
kind: MetadataRouteKind | 'favicon'
|
|
609
|
-
file: string
|
|
610
|
-
relative: string
|
|
611
|
-
outputPath: string
|
|
612
|
-
routeSegments: string[]
|
|
613
|
-
contentType: string
|
|
614
|
-
width?: number
|
|
615
|
-
height?: number
|
|
616
|
-
sizes?: string
|
|
617
|
-
alt?: string
|
|
597
|
+
kind: MetadataRouteKind | 'favicon'
|
|
598
|
+
file: string
|
|
599
|
+
relative: string
|
|
600
|
+
outputPath: string
|
|
601
|
+
routeSegments: string[]
|
|
602
|
+
contentType: string
|
|
603
|
+
width?: number
|
|
604
|
+
height?: number
|
|
605
|
+
sizes?: string
|
|
606
|
+
alt?: string
|
|
618
607
|
}
|
|
619
608
|
|
|
620
609
|
export interface StaticModuleMetadata {
|
|
621
|
-
metadata?: Metadata
|
|
622
|
-
viewport?: Viewport
|
|
610
|
+
metadata?: Metadata
|
|
611
|
+
viewport?: Viewport
|
|
623
612
|
}
|
|
624
613
|
|
|
625
614
|
export interface StaticRouteMetadata {
|
|
626
|
-
favicon?: StaticMetadataFileEntry
|
|
627
|
-
manifest?: StaticMetadataFileEntry
|
|
628
|
-
manifestLink?: MetadataLink
|
|
629
|
-
icons: StaticMetadataFileEntry[]
|
|
630
|
-
appleIcons: StaticMetadataFileEntry[]
|
|
631
|
-
rootIcons: StaticMetadataFileEntry[]
|
|
632
|
-
dynamicIcons?: MetadataLink[]
|
|
633
|
-
dynamicAppleIcons?: MetadataLink[]
|
|
634
|
-
openGraphImage?: MetadataImage
|
|
635
|
-
dynamicOpenGraphImages?: MetadataImage[]
|
|
636
|
-
twitterImage?: MetadataImage
|
|
637
|
-
dynamicTwitterImages?: MetadataImage[]
|
|
615
|
+
favicon?: StaticMetadataFileEntry
|
|
616
|
+
manifest?: StaticMetadataFileEntry
|
|
617
|
+
manifestLink?: MetadataLink
|
|
618
|
+
icons: StaticMetadataFileEntry[]
|
|
619
|
+
appleIcons: StaticMetadataFileEntry[]
|
|
620
|
+
rootIcons: StaticMetadataFileEntry[]
|
|
621
|
+
dynamicIcons?: MetadataLink[]
|
|
622
|
+
dynamicAppleIcons?: MetadataLink[]
|
|
623
|
+
openGraphImage?: MetadataImage
|
|
624
|
+
dynamicOpenGraphImages?: MetadataImage[]
|
|
625
|
+
twitterImage?: MetadataImage
|
|
626
|
+
dynamicTwitterImages?: MetadataImage[]
|
|
638
627
|
}
|
|
639
628
|
|
|
640
629
|
export interface BuildManifest {
|
|
641
|
-
version: 0
|
|
642
|
-
root: string
|
|
643
|
-
appDir: string
|
|
644
|
-
outDir: string
|
|
645
|
-
routes: RouteManifestEntry[]
|
|
646
|
-
staticFiles?: Record<string, StaticFileMetadata
|
|
647
|
-
staticMetadataFiles?: StaticMetadataFileEntry[]
|
|
648
|
-
staticModuleMetadata?: Record<string, StaticModuleMetadata
|
|
649
|
-
staticRouteMetadata?: Record<string, StaticRouteMetadata
|
|
630
|
+
version: 0
|
|
631
|
+
root: string
|
|
632
|
+
appDir: string
|
|
633
|
+
outDir: string
|
|
634
|
+
routes: RouteManifestEntry[]
|
|
635
|
+
staticFiles?: Record<string, StaticFileMetadata>
|
|
636
|
+
staticMetadataFiles?: StaticMetadataFileEntry[]
|
|
637
|
+
staticModuleMetadata?: Record<string, StaticModuleMetadata>
|
|
638
|
+
staticRouteMetadata?: Record<string, StaticRouteMetadata>
|
|
650
639
|
/** Compiled proxy/middleware bundle, relative to outDir. */
|
|
651
|
-
proxyModule?: string
|
|
640
|
+
proxyModule?: string
|
|
652
641
|
/** Absolute path to the app-root `global-error.*` file, if present. */
|
|
653
|
-
globalErrorFile?: string
|
|
642
|
+
globalErrorFile?: string
|
|
654
643
|
/** Server-action registry: wire id -> compiled module + export. COMPAT. */
|
|
655
|
-
actions?: ActionManifestEntry[]
|
|
644
|
+
actions?: ActionManifestEntry[]
|
|
656
645
|
}
|
|
657
646
|
|
|
658
647
|
/** One server-action target in the build manifest. */
|
|
659
648
|
export interface ActionManifestEntry {
|
|
660
649
|
/** Wire id (actionId), sent by the client stub in the next-action header. */
|
|
661
|
-
id: string
|
|
650
|
+
id: string
|
|
662
651
|
/**
|
|
663
652
|
* Project-root-relative POSIX path of the action's SOURCE module. Used at
|
|
664
653
|
* startup to recompute the id (actionId with no root), giving parity with the
|
|
665
654
|
* client stub's id regardless of the machine's absolute paths.
|
|
666
655
|
*/
|
|
667
|
-
sourceKey: string
|
|
656
|
+
sourceKey: string
|
|
668
657
|
/** Compiled server-module path, relative to outDir, for start to import. */
|
|
669
|
-
modulePath: string
|
|
658
|
+
modulePath: string
|
|
670
659
|
/** Export name within the module implementing the action. */
|
|
671
|
-
exportName: string
|
|
660
|
+
exportName: string
|
|
672
661
|
}
|
|
673
662
|
|
|
674
663
|
export interface StaticFileMetadata {
|
|
675
|
-
status: number
|
|
676
|
-
headers: [string, string][]
|
|
677
|
-
routeId?: string
|
|
664
|
+
status: number
|
|
665
|
+
headers: [string, string][]
|
|
666
|
+
routeId?: string
|
|
678
667
|
/** 'page' entries are prebuilt HTML subject to ISR; absent means handler output. */
|
|
679
|
-
kind?: 'page'
|
|
668
|
+
kind?: 'page'
|
|
680
669
|
/** ISR TTL in seconds (min of segment config and fetch/unstable_cache revalidates). */
|
|
681
|
-
revalidateSeconds?: number
|
|
670
|
+
revalidateSeconds?: number
|
|
682
671
|
/**
|
|
683
672
|
* Hard-expiry window in seconds from a `use cache` cacheLife(). Past this the
|
|
684
673
|
* stale copy is NO LONGER served: the request blocks on a fresh render (vs
|
|
685
674
|
* revalidateSeconds, which serves stale-while-revalidate).
|
|
686
675
|
*/
|
|
687
|
-
expireSeconds?: number
|
|
676
|
+
expireSeconds?: number
|
|
688
677
|
/** `x-nextjs-stale-time` window in seconds from a `use cache` cacheLife(). */
|
|
689
|
-
staleSeconds?: number
|
|
678
|
+
staleSeconds?: number
|
|
690
679
|
/** Cache tags the prerender depended on; revalidateTag(tag) marks the file stale. */
|
|
691
|
-
tags?: string[]
|
|
680
|
+
tags?: string[]
|
|
692
681
|
}
|
|
693
682
|
|
|
694
683
|
/** Next route segment config exports (`export const dynamic/revalidate/...`). */
|
|
695
684
|
export interface RouteSegmentConfig {
|
|
696
|
-
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
697
|
-
revalidate?: number | false
|
|
685
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
686
|
+
revalidate?: number | false
|
|
698
687
|
fetchCache?:
|
|
699
688
|
| 'auto'
|
|
700
689
|
| 'default-cache'
|
|
@@ -702,24 +691,24 @@ export interface RouteSegmentConfig {
|
|
|
702
691
|
| 'force-cache'
|
|
703
692
|
| 'force-no-store'
|
|
704
693
|
| 'default-no-store'
|
|
705
|
-
| 'only-no-store'
|
|
694
|
+
| 'only-no-store'
|
|
706
695
|
/** Param names governed by a `dynamicParams = false` declaration. */
|
|
707
|
-
dynamicParamsFalse?: string[]
|
|
696
|
+
dynamicParamsFalse?: string[]
|
|
708
697
|
/**
|
|
709
698
|
* The page has its own static params export while a `dynamicParams = false`
|
|
710
699
|
* declaration governs the route: every param tuple must match a prerendered
|
|
711
700
|
* path (Next's fallback: false), not just the governed params.
|
|
712
701
|
*/
|
|
713
|
-
strictDynamicParams?: boolean
|
|
702
|
+
strictDynamicParams?: boolean
|
|
714
703
|
/** `export const runtime` value, when declared ('edge' | 'nodejs'). */
|
|
715
|
-
runtime?: string
|
|
704
|
+
runtime?: string
|
|
716
705
|
/** Next app-shell prefetch policy declared by the route. */
|
|
717
|
-
prefetch?: 'allow-runtime' | 'partial' | 'unstable_eager'
|
|
706
|
+
prefetch?: 'allow-runtime' | 'partial' | 'unstable_eager'
|
|
718
707
|
/**
|
|
719
708
|
* `export const unstable_instant` on the page or a layout in its chain (a boolean or a sample-config object
|
|
720
709
|
* means true; an explicit `false` on a leaf overrides an ancestor's opt-in). A full (`prefetch={true}`)
|
|
721
710
|
* prefetch of an instant route is served as a RUNTIME-PREFETCH prerender: request data is sampled into the
|
|
722
711
|
* response while connection()-gated content is omitted.
|
|
723
712
|
*/
|
|
724
|
-
unstableInstant?: boolean
|
|
713
|
+
unstableInstant?: boolean
|
|
725
714
|
}
|