vinext 0.0.45 → 0.0.46
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/dist/build/prerender.js +10 -3
- package/dist/build/prerender.js.map +1 -1
- package/dist/build/standalone.js +4 -3
- package/dist/build/standalone.js.map +1 -1
- package/dist/check.js +30 -18
- package/dist/check.js.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/cloudflare/kv-cache-handler.js.map +1 -1
- package/dist/config/config-matchers.js +1 -0
- package/dist/config/config-matchers.js.map +1 -1
- package/dist/config/next-config.d.ts +38 -2
- package/dist/config/next-config.js +24 -0
- package/dist/config/next-config.js.map +1 -1
- package/dist/deploy.js +18 -23
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-rsc-entry.js +331 -1732
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/app-rsc-manifest.d.ts +24 -0
- package/dist/entries/app-rsc-manifest.js +153 -0
- package/dist/entries/app-rsc-manifest.js.map +1 -0
- package/dist/entries/pages-server-entry.js +13 -103
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/index.js +54 -34
- package/dist/index.js.map +1 -1
- package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
- package/dist/plugins/rsc-client-shim-excludes.js +27 -0
- package/dist/plugins/rsc-client-shim-excludes.js.map +1 -0
- package/dist/routing/app-router.d.ts +14 -5
- package/dist/routing/app-router.js +75 -1
- package/dist/routing/app-router.js.map +1 -1
- package/dist/routing/route-pattern.d.ts +9 -0
- package/dist/routing/route-pattern.js +90 -0
- package/dist/routing/route-pattern.js.map +1 -0
- package/dist/routing/route-trie.js +10 -11
- package/dist/routing/route-trie.js.map +1 -1
- package/dist/server/app-browser-entry.js +30 -2
- package/dist/server/app-browser-entry.js.map +1 -1
- package/dist/server/app-browser-state.js.map +1 -1
- package/dist/server/app-middleware.d.ts +32 -0
- package/dist/server/app-middleware.js +147 -0
- package/dist/server/app-middleware.js.map +1 -0
- package/dist/server/app-page-boundary-render.d.ts +2 -0
- package/dist/server/app-page-boundary-render.js +50 -30
- package/dist/server/app-page-boundary-render.js.map +1 -1
- package/dist/server/app-page-boundary.d.ts +12 -1
- package/dist/server/app-page-boundary.js +27 -12
- package/dist/server/app-page-boundary.js.map +1 -1
- package/dist/server/app-page-cache.d.ts +4 -1
- package/dist/server/app-page-cache.js +38 -2
- package/dist/server/app-page-cache.js.map +1 -1
- package/dist/server/app-page-dispatch.d.ts +120 -0
- package/dist/server/app-page-dispatch.js +332 -0
- package/dist/server/app-page-dispatch.js.map +1 -0
- package/dist/server/app-page-execution.d.ts +4 -3
- package/dist/server/app-page-execution.js +5 -8
- package/dist/server/app-page-execution.js.map +1 -1
- package/dist/server/app-page-head.d.ts +55 -0
- package/dist/server/app-page-head.js +196 -0
- package/dist/server/app-page-head.js.map +1 -0
- package/dist/server/app-page-method.d.ts +16 -0
- package/dist/server/app-page-method.js +30 -0
- package/dist/server/app-page-method.js.map +1 -0
- package/dist/server/app-page-params.d.ts +7 -0
- package/dist/server/app-page-params.js +28 -0
- package/dist/server/app-page-params.js.map +1 -0
- package/dist/server/app-page-render.d.ts +2 -1
- package/dist/server/app-page-render.js +54 -8
- package/dist/server/app-page-render.js.map +1 -1
- package/dist/server/app-page-request.d.ts +4 -4
- package/dist/server/app-page-request.js.map +1 -1
- package/dist/server/app-page-route-wiring.d.ts +14 -3
- package/dist/server/app-page-route-wiring.js +30 -8
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +10 -0
- package/dist/server/app-page-stream.js +5 -1
- package/dist/server/app-page-stream.js.map +1 -1
- package/dist/server/app-prerender-endpoints.d.ts +19 -0
- package/dist/server/app-prerender-endpoints.js +96 -0
- package/dist/server/app-prerender-endpoints.js.map +1 -0
- package/dist/server/app-prerender-static-params.d.ts +16 -0
- package/dist/server/app-prerender-static-params.js +14 -0
- package/dist/server/app-prerender-static-params.js.map +1 -0
- package/dist/server/app-route-handler-cache.d.ts +3 -0
- package/dist/server/app-route-handler-cache.js +6 -2
- package/dist/server/app-route-handler-cache.js.map +1 -1
- package/dist/server/app-route-handler-dispatch.d.ts +42 -0
- package/dist/server/app-route-handler-dispatch.js +147 -0
- package/dist/server/app-route-handler-dispatch.js.map +1 -0
- package/dist/server/app-route-handler-execution.d.ts +6 -2
- package/dist/server/app-route-handler-execution.js +23 -2
- package/dist/server/app-route-handler-execution.js.map +1 -1
- package/dist/server/app-route-handler-response.d.ts +2 -1
- package/dist/server/app-route-handler-response.js +44 -4
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-route-handler-runtime.d.ts +4 -1
- package/dist/server/app-route-handler-runtime.js +107 -1
- package/dist/server/app-route-handler-runtime.js.map +1 -1
- package/dist/server/app-router-entry.js.map +1 -1
- package/dist/server/app-rsc-errors.d.ts +27 -0
- package/dist/server/app-rsc-errors.js +42 -0
- package/dist/server/app-rsc-errors.js.map +1 -0
- package/dist/server/app-rsc-route-matching.d.ts +40 -0
- package/dist/server/app-rsc-route-matching.js +66 -0
- package/dist/server/app-rsc-route-matching.js.map +1 -0
- package/dist/server/app-server-action-execution.d.ts +86 -1
- package/dist/server/app-server-action-execution.js +255 -5
- package/dist/server/app-server-action-execution.js.map +1 -1
- package/dist/server/app-ssr-entry.d.ts +7 -0
- package/dist/server/app-ssr-entry.js +30 -9
- package/dist/server/app-ssr-entry.js.map +1 -1
- package/dist/server/app-ssr-stream.d.ts +4 -2
- package/dist/server/app-ssr-stream.js +29 -2
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/app-static-generation.d.ts +15 -0
- package/dist/server/app-static-generation.js +20 -0
- package/dist/server/app-static-generation.js.map +1 -0
- package/dist/server/dev-route-files.d.ts +7 -0
- package/dist/server/dev-route-files.js +73 -0
- package/dist/server/dev-route-files.js.map +1 -0
- package/dist/server/dev-server.js +4 -0
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/file-based-metadata.d.ts +17 -0
- package/dist/server/file-based-metadata.js +356 -0
- package/dist/server/file-based-metadata.js.map +1 -0
- package/dist/server/implicit-tags.d.ts +6 -0
- package/dist/server/implicit-tags.js +42 -0
- package/dist/server/implicit-tags.js.map +1 -0
- package/dist/server/instrumentation.js.map +1 -1
- package/dist/server/isr-cache.d.ts +20 -2
- package/dist/server/isr-cache.js +58 -7
- package/dist/server/isr-cache.js.map +1 -1
- package/dist/server/metadata-route-build-data.d.ts +25 -0
- package/dist/server/metadata-route-build-data.js +150 -0
- package/dist/server/metadata-route-build-data.js.map +1 -0
- package/dist/server/metadata-route-response.d.ts +17 -0
- package/dist/server/metadata-route-response.js +187 -0
- package/dist/server/metadata-route-response.js.map +1 -0
- package/dist/server/metadata-routes.d.ts +42 -4
- package/dist/server/metadata-routes.js +127 -11
- package/dist/server/metadata-routes.js.map +1 -1
- package/dist/server/middleware-matcher.d.ts +15 -0
- package/dist/server/middleware-matcher.js +102 -0
- package/dist/server/middleware-matcher.js.map +1 -0
- package/dist/server/middleware-request-headers.js +2 -1
- package/dist/server/middleware-request-headers.js.map +1 -1
- package/dist/server/middleware-runtime.d.ts +39 -0
- package/dist/server/middleware-runtime.js +159 -0
- package/dist/server/middleware-runtime.js.map +1 -0
- package/dist/server/middleware.d.ts +4 -36
- package/dist/server/middleware.js +18 -228
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/pages-page-data.d.ts +5 -1
- package/dist/server/pages-page-data.js +4 -0
- package/dist/server/pages-page-data.js.map +1 -1
- package/dist/server/pages-page-response.js +2 -1
- package/dist/server/pages-page-response.js.map +1 -1
- package/dist/server/prerender-work-unit-setup.d.ts +7 -0
- package/dist/server/prerender-work-unit-setup.js +30 -0
- package/dist/server/prerender-work-unit-setup.js.map +1 -0
- package/dist/server/prod-server.js +10 -14
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/request-pipeline.d.ts +46 -5
- package/dist/server/request-pipeline.js +84 -5
- package/dist/server/request-pipeline.js.map +1 -1
- package/dist/server/rsc-stream-hints.d.ts +5 -0
- package/dist/server/rsc-stream-hints.js +35 -0
- package/dist/server/rsc-stream-hints.js.map +1 -0
- package/dist/server/seed-cache.js.map +1 -1
- package/dist/server/server-action-not-found.d.ts +9 -0
- package/dist/server/server-action-not-found.js +40 -0
- package/dist/server/server-action-not-found.js.map +1 -0
- package/dist/shims/cache.d.ts +25 -2
- package/dist/shims/cache.js +52 -2
- package/dist/shims/cache.js.map +1 -1
- package/dist/shims/error-boundary.d.ts +50 -5
- package/dist/shims/error-boundary.js +76 -4
- package/dist/shims/error-boundary.js.map +1 -1
- package/dist/shims/font-google-base.d.ts +5 -4
- package/dist/shims/font-google-base.js +61 -13
- package/dist/shims/font-google-base.js.map +1 -1
- package/dist/shims/headers.d.ts +14 -2
- package/dist/shims/headers.js +127 -17
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/image.js +26 -8
- package/dist/shims/image.js.map +1 -1
- package/dist/shims/internal/make-hanging-promise.d.ts +16 -0
- package/dist/shims/internal/make-hanging-promise.js +46 -0
- package/dist/shims/internal/make-hanging-promise.js.map +1 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +26 -3
- package/dist/shims/internal/work-unit-async-storage.js +6 -3
- package/dist/shims/internal/work-unit-async-storage.js.map +1 -1
- package/dist/shims/metadata.d.ts +38 -26
- package/dist/shims/metadata.js +75 -45
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation.d.ts +10 -1
- package/dist/shims/navigation.js +18 -1
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/navigation.react-server.d.ts +2 -2
- package/dist/shims/navigation.react-server.js +2 -2
- package/dist/shims/navigation.react-server.js.map +1 -1
- package/dist/shims/offline.d.ts +5 -0
- package/dist/shims/offline.js +17 -0
- package/dist/shims/offline.js.map +1 -0
- package/dist/shims/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +11 -0
- package/dist/shims/root-params.js +24 -0
- package/dist/shims/root-params.js.map +1 -0
- package/dist/shims/router.js +1 -1
- package/dist/shims/server.d.ts +3 -1
- package/dist/shims/server.js +83 -5
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/thenable-params.d.ts +5 -0
- package/dist/shims/thenable-params.js +37 -0
- package/dist/shims/thenable-params.js.map +1 -0
- package/dist/shims/unified-request-context.d.ts +2 -1
- package/dist/shims/unified-request-context.js +2 -0
- package/dist/shims/unified-request-context.js.map +1 -1
- package/package.json +6 -1
- package/dist/server/middleware-codegen.d.ts +0 -54
- package/dist/server/middleware-codegen.js +0 -414
- package/dist/server/middleware-codegen.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -3,18 +3,21 @@ import { normalizePathnameForRouteMatchStrict } from "./routing/utils.js";
|
|
|
3
3
|
import { createValidFileMatcher } from "./routing/file-matcher.js";
|
|
4
4
|
import { apiRouter, invalidateRouteCache, matchRoute, pagesRouter } from "./routing/pages-router.js";
|
|
5
5
|
import { buildRequestHeadersFromMiddlewareResponse } from "./server/middleware-request-headers.js";
|
|
6
|
-
import { isExternalUrl, matchHeaders, matchRedirect, matchRewrite, proxyExternalRequest, requestContextFromRequest, sanitizeDestination } from "./config/config-matchers.js";
|
|
7
6
|
import { normalizePath as normalizePath$1 } from "./server/normalize-path.js";
|
|
7
|
+
import { isExternalUrl, matchHeaders, matchRedirect, matchRewrite, proxyExternalRequest, requestContextFromRequest, sanitizeDestination } from "./config/config-matchers.js";
|
|
8
|
+
import { hasBasePath } from "./utils/base-path.js";
|
|
9
|
+
import { isOpenRedirectShaped } from "./server/request-pipeline.js";
|
|
8
10
|
import { findMiddlewareFile, runMiddleware } from "./server/middleware.js";
|
|
9
11
|
import { generateServerEntry } from "./entries/pages-server-entry.js";
|
|
10
12
|
import { generateClientEntry } from "./entries/pages-client-entry.js";
|
|
11
13
|
import { appRouter, invalidateAppRouteCache } from "./routing/app-router.js";
|
|
12
14
|
import { findInstrumentationClientFile, findInstrumentationFile, runInstrumentation } from "./server/instrumentation.js";
|
|
13
|
-
import { hasBasePath } from "./utils/base-path.js";
|
|
14
15
|
import { logRequest, now } from "./server/request-log.js";
|
|
15
16
|
import { createSSRHandler } from "./server/dev-server.js";
|
|
16
17
|
import { handleApiRoute } from "./server/api-handler.js";
|
|
17
18
|
import { installSocketErrorBackstop } from "./server/socket-error-backstop.js";
|
|
19
|
+
import { scanMetadataFiles } from "./server/metadata-routes.js";
|
|
20
|
+
import { shouldInvalidateAppRouteFile } from "./server/dev-route-files.js";
|
|
18
21
|
import { createDirectRunner } from "./server/dev-module-runner.js";
|
|
19
22
|
import { validateDevRequest } from "./server/dev-origin-check.js";
|
|
20
23
|
import { generateRscEntry } from "./entries/app-rsc-entry.js";
|
|
@@ -24,15 +27,14 @@ import { buildGenerateBundleReplacement, buildReasonsReplacement, collectRouteCl
|
|
|
24
27
|
import { classifyLayoutByModuleGraph, isStaticModuleGraphResult, moduleGraphReason } from "./build/layout-classification.js";
|
|
25
28
|
import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD } from "./shims/constants.js";
|
|
26
29
|
import { findNextConfigPath, loadNextConfig, resolveNextConfig, resolveNextConfigInput } from "./config/next-config.js";
|
|
27
|
-
import { isOpenRedirectShaped } from "./server/request-pipeline.js";
|
|
28
30
|
import { precompressAssets } from "./build/precompress.js";
|
|
29
|
-
import { scanMetadataFiles } from "./server/metadata-routes.js";
|
|
30
31
|
import { manifestFileWithBase, manifestFilesWithBase } from "./utils/manifest-paths.js";
|
|
31
32
|
import { asyncHooksStubPlugin } from "./plugins/async-hooks-stub.js";
|
|
32
33
|
import { clientReferenceDedupPlugin } from "./plugins/client-reference-dedup.js";
|
|
33
34
|
import { createInstrumentationClientTransformPlugin } from "./plugins/instrumentation-client.js";
|
|
34
35
|
import { createOptimizeImportsPlugin } from "./plugins/optimize-imports.js";
|
|
35
36
|
import { createOgInlineFetchAssetsPlugin, ogAssetsPlugin } from "./plugins/og-assets.js";
|
|
37
|
+
import { VINEXT_OPTIMIZE_DEPS_EXCLUDE, mergeOptimizeDepsExclude } from "./plugins/rsc-client-shim-excludes.js";
|
|
36
38
|
import { createServerExternalsManifestPlugin } from "./plugins/server-externals-manifest.js";
|
|
37
39
|
import { RESOLVED_VIRTUAL_GOOGLE_FONTS, VIRTUAL_GOOGLE_FONTS, createGoogleFontsPlugin, createLocalFontsPlugin, generateGoogleFontsVirtualModule, parseStaticObjectLiteral } from "./plugins/fonts.js";
|
|
38
40
|
import { computeLazyChunks } from "./utils/lazy-chunks.js";
|
|
@@ -205,12 +207,23 @@ const VIRTUAL_APP_SSR_ENTRY = "virtual:vinext-app-ssr-entry";
|
|
|
205
207
|
const RESOLVED_APP_SSR_ENTRY = "\0" + VIRTUAL_APP_SSR_ENTRY;
|
|
206
208
|
const VIRTUAL_APP_BROWSER_ENTRY = "virtual:vinext-app-browser-entry";
|
|
207
209
|
const RESOLVED_APP_BROWSER_ENTRY = "\0" + VIRTUAL_APP_BROWSER_ENTRY;
|
|
210
|
+
const RESOLVED_ROOT_PARAMS = "\0virtual:vinext-root-params";
|
|
208
211
|
/** Image file extensions handled by the vinext:image-imports plugin.
|
|
209
212
|
* Shared between the Rolldown hook filter and the transform handler regex. */
|
|
210
213
|
const IMAGE_EXTS = "png|jpe?g|gif|webp|avif|svg|ico|bmp|tiff?";
|
|
211
214
|
/** Absolute path to vinext's shims directory, used by clientManualChunks. */
|
|
212
215
|
const _shimsDir = path.resolve(__dirname, "shims") + "/";
|
|
213
216
|
const _fontGoogleShimPath = resolveShimModulePath(_shimsDir, "font-google");
|
|
217
|
+
function isValidExportIdentifier(name) {
|
|
218
|
+
return /^[$A-Z_a-z][$\w]*$/.test(name);
|
|
219
|
+
}
|
|
220
|
+
function generateRootParamsModule(rootParamNames) {
|
|
221
|
+
const names = Array.from(new Set(rootParamNames)).filter(isValidExportIdentifier).sort();
|
|
222
|
+
if (names.length === 0) return "export {};\n";
|
|
223
|
+
const rootParamsShimPath = resolveShimModulePath(_shimsDir, "root-params");
|
|
224
|
+
const exports = names.map((name) => `export function ${name}() { return getRootParam(${JSON.stringify(name)}); }`).join("\n");
|
|
225
|
+
return `import { getRootParam } from ${JSON.stringify(rootParamsShimPath)};\n${exports}\n`;
|
|
226
|
+
}
|
|
214
227
|
/**
|
|
215
228
|
* Shims with a `.react-server.ts` variant for the RSC environment.
|
|
216
229
|
* Maps import specifier → base shim name. In the RSC env, resolveId
|
|
@@ -451,6 +464,7 @@ function vinext(options = {}) {
|
|
|
451
464
|
"next/og": path.join(shimsDir, "og"),
|
|
452
465
|
"next/web-vitals": path.join(shimsDir, "web-vitals"),
|
|
453
466
|
"next/amp": path.join(shimsDir, "amp"),
|
|
467
|
+
"next/offline": path.join(shimsDir, "offline"),
|
|
454
468
|
"next/error": path.join(shimsDir, "error"),
|
|
455
469
|
"next/constants": path.join(shimsDir, "constants"),
|
|
456
470
|
"next/dist/shared/lib/app-router-context.shared-runtime": path.join(shimsDir, "internal", "app-router-context"),
|
|
@@ -464,6 +478,7 @@ function vinext(options = {}) {
|
|
|
464
478
|
"next/dist/client/components/work-unit-async-storage.external": path.join(shimsDir, "internal", "work-unit-async-storage"),
|
|
465
479
|
"next/dist/client/components/request-async-storage.external": path.join(shimsDir, "internal", "work-unit-async-storage"),
|
|
466
480
|
"next/dist/client/components/request-async-storage": path.join(shimsDir, "internal", "work-unit-async-storage"),
|
|
481
|
+
"next/dist/server/request/root-params": path.join(shimsDir, "root-params"),
|
|
467
482
|
"next/dist/server/config-shared": path.join(shimsDir, "internal", "utils"),
|
|
468
483
|
"server-only": path.join(shimsDir, "server-only"),
|
|
469
484
|
"client-only": path.join(shimsDir, "client-only"),
|
|
@@ -557,12 +572,7 @@ function vinext(options = {}) {
|
|
|
557
572
|
}
|
|
558
573
|
};
|
|
559
574
|
viteConfig.optimizeDeps = {
|
|
560
|
-
exclude:
|
|
561
|
-
...incomingExclude,
|
|
562
|
-
"vinext",
|
|
563
|
-
"@vercel/og",
|
|
564
|
-
"@tailwindcss/oxide"
|
|
565
|
-
])],
|
|
575
|
+
exclude: mergeOptimizeDepsExclude(incomingExclude, VINEXT_OPTIMIZE_DEPS_EXCLUDE, ["@tailwindcss/oxide"]),
|
|
566
576
|
...incomingInclude.length > 0 ? { include: incomingInclude } : {},
|
|
567
577
|
rolldownOptions: { plugins: [depOptimizeAliasPlugin] }
|
|
568
578
|
};
|
|
@@ -583,11 +593,7 @@ function vinext(options = {}) {
|
|
|
583
593
|
...userSsrExternal === true ? {} : { noExternal: true }
|
|
584
594
|
} },
|
|
585
595
|
optimizeDeps: {
|
|
586
|
-
exclude:
|
|
587
|
-
...incomingExclude,
|
|
588
|
-
"vinext",
|
|
589
|
-
"@vercel/og"
|
|
590
|
-
])],
|
|
596
|
+
exclude: mergeOptimizeDepsExclude(incomingExclude, VINEXT_OPTIMIZE_DEPS_EXCLUDE),
|
|
591
597
|
entries: optimizeEntries
|
|
592
598
|
},
|
|
593
599
|
build: {
|
|
@@ -601,11 +607,7 @@ function vinext(options = {}) {
|
|
|
601
607
|
...userSsrExternal === true ? {} : { noExternal: true }
|
|
602
608
|
} },
|
|
603
609
|
optimizeDeps: {
|
|
604
|
-
exclude:
|
|
605
|
-
...incomingExclude,
|
|
606
|
-
"vinext",
|
|
607
|
-
"@vercel/og"
|
|
608
|
-
])],
|
|
610
|
+
exclude: mergeOptimizeDepsExclude(incomingExclude, VINEXT_OPTIMIZE_DEPS_EXCLUDE),
|
|
609
611
|
entries: optimizeEntries
|
|
610
612
|
},
|
|
611
613
|
build: {
|
|
@@ -616,12 +618,7 @@ function vinext(options = {}) {
|
|
|
616
618
|
client: {
|
|
617
619
|
consumer: "client",
|
|
618
620
|
optimizeDeps: {
|
|
619
|
-
exclude:
|
|
620
|
-
...incomingExclude,
|
|
621
|
-
"vinext",
|
|
622
|
-
"@vercel/og",
|
|
623
|
-
...nextServerExternal
|
|
624
|
-
])],
|
|
621
|
+
exclude: mergeOptimizeDepsExclude(incomingExclude, VINEXT_OPTIMIZE_DEPS_EXCLUDE, nextServerExternal),
|
|
625
622
|
entries: optimizeEntries,
|
|
626
623
|
include: [...new Set([
|
|
627
624
|
...incomingInclude,
|
|
@@ -722,6 +719,7 @@ function vinext(options = {}) {
|
|
|
722
719
|
if (cleanId === VIRTUAL_RSC_ENTRY) return RESOLVED_RSC_ENTRY;
|
|
723
720
|
if (cleanId === VIRTUAL_APP_SSR_ENTRY) return RESOLVED_APP_SSR_ENTRY;
|
|
724
721
|
if (cleanId === VIRTUAL_APP_BROWSER_ENTRY) return RESOLVED_APP_BROWSER_ENTRY;
|
|
722
|
+
if (cleanId === "next/root-params" || cleanId === "next/root-params.js") return RESOLVED_ROOT_PARAMS;
|
|
725
723
|
if (cleanId.startsWith("virtual:vinext-google-fonts?")) return RESOLVED_VIRTUAL_GOOGLE_FONTS + cleanId.slice(VIRTUAL_GOOGLE_FONTS.length);
|
|
726
724
|
if (cleanId.endsWith("/" + VIRTUAL_RSC_ENTRY) || cleanId.endsWith("\\" + VIRTUAL_RSC_ENTRY)) return RESOLVED_RSC_ENTRY;
|
|
727
725
|
if (cleanId.endsWith("/" + VIRTUAL_APP_SSR_ENTRY) || cleanId.endsWith("\\" + VIRTUAL_APP_SSR_ENTRY)) return RESOLVED_APP_SSR_ENTRY;
|
|
@@ -754,6 +752,7 @@ function vinext(options = {}) {
|
|
|
754
752
|
publicFiles: scanPublicFileRoutes(root)
|
|
755
753
|
}, instrumentationPath);
|
|
756
754
|
}
|
|
755
|
+
if (id === RESOLVED_ROOT_PARAMS) return generateRootParamsModule((hasAppDir ? await appRouter(appDir, nextConfig?.pageExtensions, fileMatcher) : []).flatMap((route) => route.rootParamNames ?? []));
|
|
757
756
|
if (id === RESOLVED_APP_SSR_ENTRY && hasAppDir) return generateSsrEntry(hasPagesDir);
|
|
758
757
|
if (id === RESOLVED_APP_BROWSER_ENTRY && hasAppDir) return generateBrowserEntry();
|
|
759
758
|
if (id.startsWith("\0virtual:vinext-google-fonts?")) return generateGoogleFontsVirtualModule(id, _fontGoogleShimPath);
|
|
@@ -904,22 +903,27 @@ function vinext(options = {}) {
|
|
|
904
903
|
rscEnv.hot.send({ type: "full-reload" });
|
|
905
904
|
}
|
|
906
905
|
}
|
|
906
|
+
function invalidateRootParamsModule() {
|
|
907
|
+
for (const env of Object.values(server.environments)) {
|
|
908
|
+
const mod = env.moduleGraph.getModuleById(RESOLVED_ROOT_PARAMS);
|
|
909
|
+
if (mod) env.moduleGraph.invalidateModule(mod);
|
|
910
|
+
}
|
|
911
|
+
}
|
|
912
|
+
function invalidateAppRoutingModules() {
|
|
913
|
+
invalidateAppRouteCache();
|
|
914
|
+
invalidateRscEntryModule();
|
|
915
|
+
invalidateRootParamsModule();
|
|
916
|
+
}
|
|
907
917
|
server.httpServer?.on("connection", (socket) => {
|
|
908
918
|
socket.on("error", () => {});
|
|
909
919
|
});
|
|
910
920
|
server.watcher.on("add", (filePath) => {
|
|
911
921
|
if (hasPagesDir && filePath.startsWith(pagesDir) && pageExtensions.test(filePath)) invalidateRouteCache(pagesDir);
|
|
912
|
-
if (hasAppDir &&
|
|
913
|
-
invalidateAppRouteCache();
|
|
914
|
-
invalidateRscEntryModule();
|
|
915
|
-
}
|
|
922
|
+
if (hasAppDir && shouldInvalidateAppRouteFile(appDir, filePath, fileMatcher)) invalidateAppRoutingModules();
|
|
916
923
|
});
|
|
917
924
|
server.watcher.on("unlink", (filePath) => {
|
|
918
925
|
if (hasPagesDir && filePath.startsWith(pagesDir) && pageExtensions.test(filePath)) invalidateRouteCache(pagesDir);
|
|
919
|
-
if (hasAppDir &&
|
|
920
|
-
invalidateAppRouteCache();
|
|
921
|
-
invalidateRscEntryModule();
|
|
922
|
-
}
|
|
926
|
+
if (hasAppDir && shouldInvalidateAppRouteFile(appDir, filePath, fileMatcher)) invalidateAppRoutingModules();
|
|
923
927
|
});
|
|
924
928
|
server.middlewares.use((req, res, next) => {
|
|
925
929
|
const blockReason = validateDevRequest({
|
|
@@ -1086,6 +1090,10 @@ function vinext(options = {}) {
|
|
|
1086
1090
|
const applyDeferredMwHeaders = () => {
|
|
1087
1091
|
if (deferredMwResponseHeaders) for (const [key, value] of deferredMwResponseHeaders) res.appendHeader(key, value);
|
|
1088
1092
|
};
|
|
1093
|
+
const applyMwRequestHeadersForExternalProxy = () => {
|
|
1094
|
+
if (middlewareRequestHeaders) applyRequestHeadersToNodeRequest(middlewareRequestHeaders);
|
|
1095
|
+
else delete req.headers["x-vinext-mw-ctx"];
|
|
1096
|
+
};
|
|
1089
1097
|
if (middlewarePath) {
|
|
1090
1098
|
const rawProto = process.env.VINEXT_TRUST_PROXY === "1" || (process.env.VINEXT_TRUSTED_HOSTS ?? "").split(",").some((h) => h.trim()) ? String(req.headers["x-forwarded-proto"] || "").split(",")[0].trim() : "";
|
|
1091
1099
|
const origin = `${rawProto === "https" || rawProto === "http" ? rawProto : "http"}://${req.headers.host || "localhost"}`;
|
|
@@ -1151,6 +1159,7 @@ function vinext(options = {}) {
|
|
|
1151
1159
|
if (nextConfig?.rewrites.beforeFiles.length) resolvedUrl = applyRewrites(pathname, nextConfig.rewrites.beforeFiles, reqCtx) ?? url;
|
|
1152
1160
|
if (isExternalUrl(resolvedUrl)) {
|
|
1153
1161
|
applyDeferredMwHeaders();
|
|
1162
|
+
applyMwRequestHeadersForExternalProxy();
|
|
1154
1163
|
await proxyExternalRewriteNode(req, res, resolvedUrl);
|
|
1155
1164
|
return;
|
|
1156
1165
|
}
|
|
@@ -1174,6 +1183,7 @@ function vinext(options = {}) {
|
|
|
1174
1183
|
}
|
|
1175
1184
|
if (isExternalUrl(resolvedUrl)) {
|
|
1176
1185
|
applyDeferredMwHeaders();
|
|
1186
|
+
applyMwRequestHeadersForExternalProxy();
|
|
1177
1187
|
await proxyExternalRewriteNode(req, res, resolvedUrl);
|
|
1178
1188
|
return;
|
|
1179
1189
|
}
|
|
@@ -1190,6 +1200,7 @@ function vinext(options = {}) {
|
|
|
1190
1200
|
if (fallbackRewrite) {
|
|
1191
1201
|
if (isExternalUrl(fallbackRewrite)) {
|
|
1192
1202
|
applyDeferredMwHeaders();
|
|
1203
|
+
applyMwRequestHeadersForExternalProxy();
|
|
1193
1204
|
await proxyExternalRewriteNode(req, res, fallbackRewrite);
|
|
1194
1205
|
return;
|
|
1195
1206
|
}
|
|
@@ -1442,6 +1453,15 @@ function vinext(options = {}) {
|
|
|
1442
1453
|
}
|
|
1443
1454
|
};
|
|
1444
1455
|
})(),
|
|
1456
|
+
{
|
|
1457
|
+
name: "vinext:hash-salt",
|
|
1458
|
+
apply: "build",
|
|
1459
|
+
augmentChunkHash() {
|
|
1460
|
+
if (this.environment?.name !== "client") return;
|
|
1461
|
+
const salt = nextConfig?.hashSalt;
|
|
1462
|
+
if (salt) return salt;
|
|
1463
|
+
}
|
|
1464
|
+
},
|
|
1445
1465
|
(() => {
|
|
1446
1466
|
const prerenderSecret = randomBytes(32).toString("hex");
|
|
1447
1467
|
return {
|