vinext 0.0.53 → 0.0.54

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.
Files changed (188) hide show
  1. package/dist/build/inline-css.d.ts +7 -0
  2. package/dist/build/inline-css.js +50 -0
  3. package/dist/build/inline-css.js.map +1 -0
  4. package/dist/build/prerender.js +2 -1
  5. package/dist/build/prerender.js.map +1 -1
  6. package/dist/check.js +4 -0
  7. package/dist/check.js.map +1 -1
  8. package/dist/client/navigation-runtime.d.ts +2 -1
  9. package/dist/client/navigation-runtime.js.map +1 -1
  10. package/dist/client/window-next.d.ts +7 -0
  11. package/dist/client/window-next.js.map +1 -1
  12. package/dist/config/next-config.d.ts +83 -1
  13. package/dist/config/next-config.js +131 -2
  14. package/dist/config/next-config.js.map +1 -1
  15. package/dist/deploy.js +13 -0
  16. package/dist/deploy.js.map +1 -1
  17. package/dist/entries/app-browser-entry.d.ts +11 -1
  18. package/dist/entries/app-browser-entry.js +16 -6
  19. package/dist/entries/app-browser-entry.js.map +1 -1
  20. package/dist/entries/app-rsc-entry.d.ts +8 -1
  21. package/dist/entries/app-rsc-entry.js +18 -5
  22. package/dist/entries/app-rsc-entry.js.map +1 -1
  23. package/dist/entries/app-rsc-manifest.d.ts +21 -1
  24. package/dist/entries/app-rsc-manifest.js +6 -4
  25. package/dist/entries/app-rsc-manifest.js.map +1 -1
  26. package/dist/entries/pages-client-entry.d.ts +4 -1
  27. package/dist/entries/pages-client-entry.js +18 -2
  28. package/dist/entries/pages-client-entry.js.map +1 -1
  29. package/dist/entries/pages-server-entry.js +82 -4
  30. package/dist/entries/pages-server-entry.js.map +1 -1
  31. package/dist/entries/runtime-entry-module.d.ts +1 -10
  32. package/dist/entries/runtime-entry-module.js +2 -12
  33. package/dist/entries/runtime-entry-module.js.map +1 -1
  34. package/dist/index.js +63 -5
  35. package/dist/index.js.map +1 -1
  36. package/dist/plugins/remove-console.d.ts +16 -0
  37. package/dist/plugins/remove-console.js +176 -0
  38. package/dist/plugins/remove-console.js.map +1 -0
  39. package/dist/routing/app-route-graph.d.ts +24 -1
  40. package/dist/routing/app-route-graph.js +52 -4
  41. package/dist/routing/app-route-graph.js.map +1 -1
  42. package/dist/routing/app-router.d.ts +2 -2
  43. package/dist/routing/app-router.js +2 -2
  44. package/dist/routing/app-router.js.map +1 -1
  45. package/dist/routing/file-matcher.d.ts +21 -1
  46. package/dist/routing/file-matcher.js +39 -1
  47. package/dist/routing/file-matcher.js.map +1 -1
  48. package/dist/routing/pages-router.d.ts +1 -1
  49. package/dist/routing/pages-router.js +10 -3
  50. package/dist/routing/pages-router.js.map +1 -1
  51. package/dist/server/api-handler.js +1 -1
  52. package/dist/server/app-browser-entry.js +25 -16
  53. package/dist/server/app-browser-entry.js.map +1 -1
  54. package/dist/server/app-browser-navigation-controller.d.ts +2 -0
  55. package/dist/server/app-browser-navigation-controller.js +4 -0
  56. package/dist/server/app-browser-navigation-controller.js.map +1 -1
  57. package/dist/server/app-elements-wire.d.ts +13 -4
  58. package/dist/server/app-elements-wire.js +10 -1
  59. package/dist/server/app-elements-wire.js.map +1 -1
  60. package/dist/server/app-elements.d.ts +2 -2
  61. package/dist/server/app-elements.js +2 -2
  62. package/dist/server/app-elements.js.map +1 -1
  63. package/dist/server/app-fallback-renderer.d.ts +15 -5
  64. package/dist/server/app-fallback-renderer.js +10 -4
  65. package/dist/server/app-fallback-renderer.js.map +1 -1
  66. package/dist/server/app-inline-css-client.d.ts +7 -0
  67. package/dist/server/app-inline-css-client.js +37 -0
  68. package/dist/server/app-inline-css-client.js.map +1 -0
  69. package/dist/server/app-page-boundary.d.ts +21 -1
  70. package/dist/server/app-page-boundary.js +28 -3
  71. package/dist/server/app-page-boundary.js.map +1 -1
  72. package/dist/server/app-page-cache.d.ts +7 -3
  73. package/dist/server/app-page-cache.js +7 -7
  74. package/dist/server/app-page-cache.js.map +1 -1
  75. package/dist/server/app-page-dispatch.d.ts +10 -1
  76. package/dist/server/app-page-dispatch.js +126 -79
  77. package/dist/server/app-page-dispatch.js.map +1 -1
  78. package/dist/server/app-page-element-builder.js +12 -28
  79. package/dist/server/app-page-element-builder.js.map +1 -1
  80. package/dist/server/app-page-render-identity.d.ts +22 -0
  81. package/dist/server/app-page-render-identity.js +42 -0
  82. package/dist/server/app-page-render-identity.js.map +1 -0
  83. package/dist/server/app-page-render.d.ts +8 -1
  84. package/dist/server/app-page-render.js +4 -1
  85. package/dist/server/app-page-render.js.map +1 -1
  86. package/dist/server/app-page-request.d.ts +6 -3
  87. package/dist/server/app-page-request.js +5 -2
  88. package/dist/server/app-page-request.js.map +1 -1
  89. package/dist/server/app-page-response.js +2 -2
  90. package/dist/server/app-page-response.js.map +1 -1
  91. package/dist/server/app-page-route-wiring.d.ts +15 -0
  92. package/dist/server/app-page-route-wiring.js +7 -5
  93. package/dist/server/app-page-route-wiring.js.map +1 -1
  94. package/dist/server/app-page-stream.d.ts +11 -0
  95. package/dist/server/app-page-stream.js +1 -0
  96. package/dist/server/app-page-stream.js.map +1 -1
  97. package/dist/server/app-route-handler-response.js +37 -5
  98. package/dist/server/app-route-handler-response.js.map +1 -1
  99. package/dist/server/app-rsc-handler.d.ts +14 -3
  100. package/dist/server/app-rsc-handler.js +45 -5
  101. package/dist/server/app-rsc-handler.js.map +1 -1
  102. package/dist/server/app-rsc-request-normalization.d.ts +2 -1
  103. package/dist/server/app-rsc-request-normalization.js +3 -2
  104. package/dist/server/app-rsc-request-normalization.js.map +1 -1
  105. package/dist/server/app-server-action-execution.d.ts +21 -3
  106. package/dist/server/app-server-action-execution.js +42 -7
  107. package/dist/server/app-server-action-execution.js.map +1 -1
  108. package/dist/server/app-ssr-entry.d.ts +6 -0
  109. package/dist/server/app-ssr-entry.js +22 -7
  110. package/dist/server/app-ssr-entry.js.map +1 -1
  111. package/dist/server/app-ssr-error-meta.js +3 -3
  112. package/dist/server/app-ssr-error-meta.js.map +1 -1
  113. package/dist/server/app-ssr-stream.d.ts +2 -1
  114. package/dist/server/app-ssr-stream.js +176 -31
  115. package/dist/server/app-ssr-stream.js.map +1 -1
  116. package/dist/server/client-trace-metadata.d.ts +31 -0
  117. package/dist/server/client-trace-metadata.js +83 -0
  118. package/dist/server/client-trace-metadata.js.map +1 -0
  119. package/dist/server/cookie-utils.d.ts +13 -0
  120. package/dist/server/cookie-utils.js +20 -0
  121. package/dist/server/cookie-utils.js.map +1 -0
  122. package/dist/server/dev-server.d.ts +8 -1
  123. package/dist/server/dev-server.js +34 -5
  124. package/dist/server/dev-server.js.map +1 -1
  125. package/dist/server/html.d.ts +2 -1
  126. package/dist/server/html.js +6 -1
  127. package/dist/server/html.js.map +1 -1
  128. package/dist/server/isr-cache.d.ts +7 -5
  129. package/dist/server/isr-cache.js +17 -6
  130. package/dist/server/isr-cache.js.map +1 -1
  131. package/dist/server/middleware-runtime.js +1 -2
  132. package/dist/server/middleware-runtime.js.map +1 -1
  133. package/dist/server/pages-document-initial-props.d.ts +7 -0
  134. package/dist/server/pages-document-initial-props.js +14 -0
  135. package/dist/server/pages-document-initial-props.js.map +1 -0
  136. package/dist/server/pages-page-data.js +3 -0
  137. package/dist/server/pages-page-data.js.map +1 -1
  138. package/dist/server/pages-page-method.d.ts +48 -0
  139. package/dist/server/pages-page-method.js +19 -0
  140. package/dist/server/pages-page-method.js.map +1 -0
  141. package/dist/server/pages-page-response.d.ts +6 -0
  142. package/dist/server/pages-page-response.js +10 -3
  143. package/dist/server/pages-page-response.js.map +1 -1
  144. package/dist/server/pages-serializable-props.d.ts +25 -0
  145. package/dist/server/pages-serializable-props.js +69 -0
  146. package/dist/server/pages-serializable-props.js.map +1 -0
  147. package/dist/server/prod-server.js +3 -0
  148. package/dist/server/prod-server.js.map +1 -1
  149. package/dist/server/server-action-not-found.js +3 -2
  150. package/dist/server/server-action-not-found.js.map +1 -1
  151. package/dist/server/static-file-cache.js +2 -1
  152. package/dist/server/static-file-cache.js.map +1 -1
  153. package/dist/shims/app-router-scroll-state.d.ts +4 -2
  154. package/dist/shims/app-router-scroll-state.js +16 -3
  155. package/dist/shims/app-router-scroll-state.js.map +1 -1
  156. package/dist/shims/app-router-scroll.d.ts +16 -2
  157. package/dist/shims/app-router-scroll.js +18 -3
  158. package/dist/shims/app-router-scroll.js.map +1 -1
  159. package/dist/shims/cache.d.ts +6 -0
  160. package/dist/shims/cache.js +7 -0
  161. package/dist/shims/cache.js.map +1 -1
  162. package/dist/shims/error.js +3 -0
  163. package/dist/shims/error.js.map +1 -1
  164. package/dist/shims/headers.d.ts +7 -0
  165. package/dist/shims/headers.js +9 -1
  166. package/dist/shims/headers.js.map +1 -1
  167. package/dist/shims/internal/app-route-detection.d.ts +37 -0
  168. package/dist/shims/internal/app-route-detection.js +69 -0
  169. package/dist/shims/internal/app-route-detection.js.map +1 -0
  170. package/dist/shims/link.d.ts +18 -2
  171. package/dist/shims/link.js +70 -6
  172. package/dist/shims/link.js.map +1 -1
  173. package/dist/shims/metadata.d.ts +7 -6
  174. package/dist/shims/metadata.js +9 -5
  175. package/dist/shims/metadata.js.map +1 -1
  176. package/dist/shims/navigation.d.ts +1 -2
  177. package/dist/shims/navigation.js +63 -12
  178. package/dist/shims/navigation.js.map +1 -1
  179. package/dist/shims/router.d.ts +5 -0
  180. package/dist/shims/router.js +14 -4
  181. package/dist/shims/router.js.map +1 -1
  182. package/dist/shims/script.d.ts +11 -1
  183. package/dist/shims/script.js +75 -6
  184. package/dist/shims/script.js.map +1 -1
  185. package/dist/utils/path.d.ts +13 -0
  186. package/dist/utils/path.js +16 -0
  187. package/dist/utils/path.js.map +1 -0
  188. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { detectPackageManager } from "./utils/project.js";
2
2
  import { normalizePathnameForRouteMatchStrict } from "./routing/utils.js";
3
- import { createValidFileMatcher } from "./routing/file-matcher.js";
3
+ import { buildViteResolveExtensions, createValidFileMatcher } from "./routing/file-matcher.js";
4
4
  import { hasBasePath } from "./utils/base-path.js";
5
5
  import { apiRouter, invalidateRouteCache, matchRoute, pagesRouter } from "./routing/pages-router.js";
6
6
  import { INTERNAL_HEADERS, VINEXT_INTERNAL_HEADERS, VINEXT_MW_CTX_HEADER, VINEXT_TIMING_HEADER } from "./server/headers.js";
@@ -8,12 +8,12 @@ import { buildRequestHeadersFromMiddlewareResponse } from "./server/middleware-r
8
8
  import { normalizePath as normalizePath$1 } from "./server/normalize-path.js";
9
9
  import { isExternalUrl, matchHeaders, matchRedirect, matchRewrite, proxyExternalRequest, requestContextFromRequest, sanitizeDestination } from "./config/config-matchers.js";
10
10
  import { filterInternalHeaders, isOpenRedirectShaped, normalizeTrailingSlash } from "./server/request-pipeline.js";
11
- import { mergeRewriteQuery } from "./utils/query.js";
12
11
  import { findMiddlewareFile, runMiddleware } from "./server/middleware.js";
13
12
  import { generateServerEntry } from "./entries/pages-server-entry.js";
14
13
  import { generateClientEntry } from "./entries/pages-client-entry.js";
15
14
  import { appRouteGraph, appRouter, invalidateAppRouteCache } from "./routing/app-router.js";
16
15
  import { findInstrumentationClientFile, findInstrumentationFile, runInstrumentation } from "./server/instrumentation.js";
16
+ import { mergeRewriteQuery } from "./utils/query.js";
17
17
  import { logRequest, now } from "./server/request-log.js";
18
18
  import { normalizeDefaultLocalePathname, stripI18nLocaleForApiRoute } from "./server/pages-i18n.js";
19
19
  import { createSSRHandler } from "./server/dev-server.js";
@@ -26,7 +26,7 @@ import { createDirectRunner } from "./server/dev-module-runner.js";
26
26
  import { validateDevRequest } from "./server/dev-origin-check.js";
27
27
  import { generateRscEntry } from "./entries/app-rsc-entry.js";
28
28
  import { generateSsrEntry } from "./entries/app-ssr-entry.js";
29
- import { generateBrowserEntry } from "./entries/app-browser-entry.js";
29
+ import { generateBrowserEntry, isLinkPrefetchRoute, toLinkPrefetchRoute } from "./entries/app-browser-entry.js";
30
30
  import { collectRouteClassificationManifest } from "./build/route-classification-manifest.js";
31
31
  import { planRouteClassificationInjection } from "./build/route-classification-injector.js";
32
32
  import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD } from "./shims/constants.js";
@@ -35,6 +35,7 @@ import { RESOLVED_VIRTUAL_GOOGLE_FONTS, VIRTUAL_GOOGLE_FONTS, createGoogleFontsP
35
35
  import { findNextConfigPath, loadNextConfig, resolveNextConfig, resolveNextConfigInput } from "./config/next-config.js";
36
36
  import { isNextDataPathname, parseNextDataPathname } from "./server/pages-data-route.js";
37
37
  import { precompressAssets } from "./build/precompress.js";
38
+ import { collectInlineCssManifest, injectInlineCssManifestGlobal } from "./build/inline-css.js";
38
39
  import { manifestFileWithBase, manifestFilesWithBase } from "./utils/manifest-paths.js";
39
40
  import { asyncHooksStubPlugin } from "./plugins/async-hooks-stub.js";
40
41
  import { clientReferenceDedupPlugin } from "./plugins/client-reference-dedup.js";
@@ -55,6 +56,7 @@ import { buildSassPreprocessorOptions } from "./plugins/sass.js";
55
56
  import { createClientCodeSplittingConfig, createClientManualChunks, createClientOutputConfig, getBuildBundlerOptions, getClientTreeshakeConfigForVite, withBuildBundlerOptions } from "./build/client-build-config.js";
56
57
  import { augmentSsrManifestFromBundle, relativeWithinRoot, tryRealpathSync } from "./build/ssr-manifest.js";
57
58
  import { stripServerExports } from "./plugins/strip-server-exports.js";
59
+ import { removeConsoleCalls } from "./plugins/remove-console.js";
58
60
  import { hasMdxFiles } from "./utils/mdx-scan.js";
59
61
  import { scanPublicFileRoutes } from "./utils/public-routes.js";
60
62
  import { staticExportApp, staticExportPages } from "./build/static-export.js";
@@ -389,7 +391,8 @@ function vinext(options = {}) {
389
391
  * __NEXT_DATA__ to determine which page to hydrate.
390
392
  */
391
393
  async function generateClientEntry$1() {
392
- return generateClientEntry(pagesDir, nextConfig, fileMatcher);
394
+ const appPrefetchRoutes = hasAppDir ? (await appRouter(appDir, nextConfig?.pageExtensions, fileMatcher)).filter(isLinkPrefetchRoute).map(toLinkPrefetchRoute) : [];
395
+ return generateClientEntry(pagesDir, nextConfig, fileMatcher, { appPrefetchRoutes });
393
396
  }
394
397
  async function writeRouteTypes() {
395
398
  if (!hasAppDir) return;
@@ -553,6 +556,7 @@ function vinext(options = {}) {
553
556
  defines[`process.env.${key}`] = JSON.stringify(value);
554
557
  }
555
558
  defines["process.env.__NEXT_ROUTER_BASEPATH"] = JSON.stringify(nextConfig.basePath);
559
+ defines["process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME"] = JSON.stringify(String(nextConfig.staleTimes.static));
556
560
  defines["process.env.__VINEXT_TRAILING_SLASH"] = JSON.stringify(nextConfig.trailingSlash ? "true" : "false");
557
561
  defines["process.env.__VINEXT_IMAGE_REMOTE_PATTERNS"] = JSON.stringify(JSON.stringify(nextConfig.images?.remotePatterns ?? []));
558
562
  defines["process.env.__VINEXT_IMAGE_DOMAINS"] = JSON.stringify(JSON.stringify(nextConfig.images?.domains ?? []));
@@ -585,8 +589,14 @@ function vinext(options = {}) {
585
589
  defines["process.env.__VINEXT_BUILD_ID"] = JSON.stringify(nextConfig.buildId);
586
590
  defines["process.env.__VINEXT_RSC_COMPATIBILITY_ID"] = JSON.stringify(rscCompatibilityId);
587
591
  defines["process.env.__VINEXT_DEPLOYMENT_ID"] = JSON.stringify(nextConfig.deploymentId ?? "");
592
+ defines["process.env.NEXT_DEPLOYMENT_ID"] = nextConfig.deploymentId ? JSON.stringify(nextConfig.deploymentId) : "false";
588
593
  defines["process.env.__NEXT_VERSION"] = JSON.stringify(getVinextVersion());
589
594
  defines["process.env.__NEXT_APP_SHELLS"] = JSON.stringify(false);
595
+ for (const [key, value] of Object.entries(nextConfig.compilerDefine)) {
596
+ if (key in defines) throw new Error(`The \`compiler.define\` option is configured to replace the \`${key}\` variable. This variable is either part of a built-in or is already configured.`);
597
+ defines[key] = value;
598
+ }
599
+ for (const key of Object.keys(nextConfig.compilerDefineServer)) if (key in defines) throw new Error(`The \`compiler.defineServer\` option is configured to replace the \`${key}\` variable. This variable is either part of a built-in or is already configured.`);
590
600
  nextShimMap = Object.fromEntries(Object.entries({
591
601
  "next/link": path.join(shimsDir, "link"),
592
602
  "next/head": path.join(shimsDir, "head"),
@@ -704,6 +714,7 @@ function vinext(options = {}) {
704
714
  ...nextConfig.aliases,
705
715
  ...nextShimMap
706
716
  },
717
+ extensions: buildViteResolveExtensions(nextConfig.pageExtensions),
707
718
  dedupe: [
708
719
  "react",
709
720
  "react-dom",
@@ -924,8 +935,10 @@ function vinext(options = {}) {
924
935
  allowedDevOrigins: nextConfig?.allowedDevOrigins,
925
936
  bodySizeLimit: nextConfig?.serverActionsBodySizeLimit,
926
937
  htmlLimitedBots: nextConfig?.htmlLimitedBots,
938
+ clientTraceMetadata: nextConfig?.clientTraceMetadata,
927
939
  assetPrefix: nextConfig?.assetPrefix,
928
940
  expireTime: nextConfig?.expireTime,
941
+ inlineCss: nextConfig?.inlineCss,
929
942
  i18n: nextConfig?.i18n,
930
943
  hasPagesDir,
931
944
  publicFiles: scanPublicFileRoutes(root),
@@ -1415,7 +1428,7 @@ function vinext(options = {}) {
1415
1428
  await proxyExternalRewriteNode(req, res, resolvedUrl);
1416
1429
  return;
1417
1430
  }
1418
- const handler = createSSRHandler(server, getPagesRunner(), routes, pagesDir, nextConfig?.i18n, fileMatcher, nextConfig?.basePath ?? "", nextConfig?.trailingSlash ?? false, middlewarePath !== null);
1431
+ const handler = createSSRHandler(server, getPagesRunner(), routes, pagesDir, nextConfig?.i18n, fileMatcher, nextConfig?.basePath ?? "", nextConfig?.trailingSlash ?? false, middlewarePath !== null, nextConfig?.clientTraceMetadata);
1419
1432
  const mwStatus = req.__vinextMiddlewareStatus;
1420
1433
  if (match) {
1421
1434
  applyDeferredMwHeaders();
@@ -1471,6 +1484,32 @@ function vinext(options = {}) {
1471
1484
  }
1472
1485
  }
1473
1486
  },
1487
+ {
1488
+ name: "vinext:remove-console",
1489
+ apply: "build",
1490
+ transform: {
1491
+ filter: { id: /\.(tsx?|jsx?|mjs)$/ },
1492
+ handler(code, id) {
1493
+ if (this.environment?.name !== "client") return null;
1494
+ if (!nextConfig.removeConsole) return null;
1495
+ if (id.includes("/node_modules/")) return null;
1496
+ const result = removeConsoleCalls(code, nextConfig.removeConsole);
1497
+ if (!result) return null;
1498
+ return {
1499
+ code: result,
1500
+ map: null
1501
+ };
1502
+ }
1503
+ }
1504
+ },
1505
+ {
1506
+ name: "vinext:compiler-define-server",
1507
+ configEnvironment(name) {
1508
+ if (Object.keys(nextConfig.compilerDefineServer).length === 0) return null;
1509
+ if (name === "client") return null;
1510
+ return { define: { ...nextConfig.compilerDefineServer } };
1511
+ }
1512
+ },
1474
1513
  {
1475
1514
  name: "vinext:image-imports",
1476
1515
  enforce: "pre",
@@ -1818,6 +1857,25 @@ function vinext(options = {}) {
1818
1857
  }
1819
1858
  };
1820
1859
  })(),
1860
+ {
1861
+ name: "vinext:inline-css-manifest",
1862
+ apply: "build",
1863
+ enforce: "post",
1864
+ closeBundle: {
1865
+ sequential: true,
1866
+ order: "post",
1867
+ handler() {
1868
+ if (this.environment?.name !== "client") return;
1869
+ if (!hasAppDir || nextConfig?.inlineCss !== true) return;
1870
+ const envConfig = this.environment?.config;
1871
+ if (!envConfig) return;
1872
+ const buildRoot = envConfig.root ?? process.cwd();
1873
+ const manifest = collectInlineCssManifest(path.resolve(buildRoot, "dist", "client"), nextConfig.assetPrefix);
1874
+ const rscOutDir = path.resolve(buildRoot, options.rscOutDir ?? path.join("dist", "server"));
1875
+ for (const entryFile of ["index.js", "index.mjs"]) if (injectInlineCssManifestGlobal(path.join(rscOutDir, entryFile), manifest)) break;
1876
+ }
1877
+ }
1878
+ },
1821
1879
  {
1822
1880
  name: "vinext:cloudflare-build",
1823
1881
  apply: "build",