vinext 0.0.41 → 0.0.43

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 (166) hide show
  1. package/README.md +0 -1
  2. package/dist/build/client-build-config.d.ts +119 -0
  3. package/dist/build/client-build-config.js +149 -0
  4. package/dist/build/client-build-config.js.map +1 -0
  5. package/dist/build/layout-classification-types.d.ts +62 -0
  6. package/dist/build/layout-classification-types.js +1 -0
  7. package/dist/build/layout-classification.d.ts +60 -0
  8. package/dist/build/layout-classification.js +98 -0
  9. package/dist/build/layout-classification.js.map +1 -0
  10. package/dist/build/report.d.ts +15 -1
  11. package/dist/build/report.js +50 -1
  12. package/dist/build/report.js.map +1 -1
  13. package/dist/build/route-classification-manifest.d.ts +53 -0
  14. package/dist/build/route-classification-manifest.js +145 -0
  15. package/dist/build/route-classification-manifest.js.map +1 -0
  16. package/dist/build/run-prerender.js +1 -1
  17. package/dist/build/ssr-manifest.d.ts +19 -0
  18. package/dist/build/ssr-manifest.js +71 -0
  19. package/dist/build/ssr-manifest.js.map +1 -0
  20. package/dist/check.js +2 -2
  21. package/dist/check.js.map +1 -1
  22. package/dist/cli.js +1 -1
  23. package/dist/client/entry.js +1 -1
  24. package/dist/config/config-matchers.js +1 -0
  25. package/dist/config/config-matchers.js.map +1 -1
  26. package/dist/entries/app-rsc-entry.js +315 -101
  27. package/dist/entries/app-rsc-entry.js.map +1 -1
  28. package/dist/index.d.ts +1 -169
  29. package/dist/index.js +112 -432
  30. package/dist/index.js.map +1 -1
  31. package/dist/plugins/fonts.d.ts +49 -1
  32. package/dist/plugins/fonts.js +96 -3
  33. package/dist/plugins/fonts.js.map +1 -1
  34. package/dist/plugins/postcss.d.ts +27 -0
  35. package/dist/plugins/postcss.js +94 -0
  36. package/dist/plugins/postcss.js.map +1 -0
  37. package/dist/plugins/strip-server-exports.d.ts +14 -0
  38. package/dist/plugins/strip-server-exports.js +73 -0
  39. package/dist/plugins/strip-server-exports.js.map +1 -0
  40. package/dist/routing/app-router.d.ts +6 -4
  41. package/dist/routing/app-router.js +44 -25
  42. package/dist/routing/app-router.js.map +1 -1
  43. package/dist/server/app-browser-entry.js +307 -100
  44. package/dist/server/app-browser-entry.js.map +1 -1
  45. package/dist/server/app-browser-error.d.ts +8 -0
  46. package/dist/server/app-browser-error.js +9 -0
  47. package/dist/server/app-browser-error.js.map +1 -0
  48. package/dist/server/app-browser-state.d.ts +93 -0
  49. package/dist/server/app-browser-state.js +132 -0
  50. package/dist/server/app-browser-state.js.map +1 -0
  51. package/dist/server/app-elements.d.ts +92 -0
  52. package/dist/server/app-elements.js +122 -0
  53. package/dist/server/app-elements.js.map +1 -0
  54. package/dist/server/app-page-boundary-render.d.ts +2 -1
  55. package/dist/server/app-page-boundary-render.js +40 -1
  56. package/dist/server/app-page-boundary-render.js.map +1 -1
  57. package/dist/server/app-page-cache.d.ts +6 -3
  58. package/dist/server/app-page-cache.js +14 -8
  59. package/dist/server/app-page-cache.js.map +1 -1
  60. package/dist/server/app-page-execution.d.ts +36 -3
  61. package/dist/server/app-page-execution.js +50 -10
  62. package/dist/server/app-page-execution.js.map +1 -1
  63. package/dist/server/app-page-probe.d.ts +10 -4
  64. package/dist/server/app-page-probe.js +24 -15
  65. package/dist/server/app-page-probe.js.map +1 -1
  66. package/dist/server/app-page-render.d.ts +7 -4
  67. package/dist/server/app-page-render.js +13 -4
  68. package/dist/server/app-page-render.js.map +1 -1
  69. package/dist/server/app-page-request.d.ts +52 -4
  70. package/dist/server/app-page-request.js +86 -16
  71. package/dist/server/app-page-request.js.map +1 -1
  72. package/dist/server/app-page-response.d.ts +1 -0
  73. package/dist/server/app-page-response.js +1 -0
  74. package/dist/server/app-page-response.js.map +1 -1
  75. package/dist/server/app-page-route-wiring.d.ts +22 -8
  76. package/dist/server/app-page-route-wiring.js +219 -83
  77. package/dist/server/app-page-route-wiring.js.map +1 -1
  78. package/dist/server/app-render-dependency.d.ts +13 -0
  79. package/dist/server/app-render-dependency.js +35 -0
  80. package/dist/server/app-render-dependency.js.map +1 -0
  81. package/dist/server/app-route-handler-execution.d.ts +1 -0
  82. package/dist/server/app-route-handler-execution.js +1 -0
  83. package/dist/server/app-route-handler-execution.js.map +1 -1
  84. package/dist/server/app-route-handler-policy.js +5 -3
  85. package/dist/server/app-route-handler-policy.js.map +1 -1
  86. package/dist/server/app-route-handler-response.js +2 -0
  87. package/dist/server/app-route-handler-response.js.map +1 -1
  88. package/dist/server/app-route-handler-runtime.d.ts +1 -0
  89. package/dist/server/app-route-handler-runtime.js +26 -1
  90. package/dist/server/app-route-handler-runtime.js.map +1 -1
  91. package/dist/server/app-ssr-entry.js +6 -2
  92. package/dist/server/app-ssr-entry.js.map +1 -1
  93. package/dist/server/dev-server.js +2 -4
  94. package/dist/server/dev-server.js.map +1 -1
  95. package/dist/server/middleware.js +1 -5
  96. package/dist/server/middleware.js.map +1 -1
  97. package/dist/server/prod-server.d.ts +3 -3
  98. package/dist/server/prod-server.js +1 -1
  99. package/dist/server/prod-server.js.map +1 -1
  100. package/dist/server/request-pipeline.d.ts +2 -1
  101. package/dist/server/request-pipeline.js +34 -5
  102. package/dist/server/request-pipeline.js.map +1 -1
  103. package/dist/shims/cache-runtime.d.ts +1 -0
  104. package/dist/shims/cache-runtime.js +0 -5
  105. package/dist/shims/cache-runtime.js.map +1 -1
  106. package/dist/shims/cache.d.ts +1 -0
  107. package/dist/shims/cache.js +1 -8
  108. package/dist/shims/cache.js.map +1 -1
  109. package/dist/shims/client-hook-error.d.ts +14 -0
  110. package/dist/shims/client-hook-error.js +19 -0
  111. package/dist/shims/client-hook-error.js.map +1 -0
  112. package/dist/shims/constants.d.ts +3 -3
  113. package/dist/shims/constants.js +3 -3
  114. package/dist/shims/constants.js.map +1 -1
  115. package/dist/shims/document.d.ts +6 -6
  116. package/dist/shims/error-boundary.d.ts +4 -4
  117. package/dist/shims/error-boundary.js +1 -1
  118. package/dist/shims/error-boundary.js.map +1 -1
  119. package/dist/shims/form.d.ts +3 -3
  120. package/dist/shims/head-state.d.ts +1 -0
  121. package/dist/shims/head-state.js +0 -5
  122. package/dist/shims/head-state.js.map +1 -1
  123. package/dist/shims/headers.d.ts +11 -0
  124. package/dist/shims/headers.js +13 -10
  125. package/dist/shims/headers.js.map +1 -1
  126. package/dist/shims/i18n-state.d.ts +1 -0
  127. package/dist/shims/i18n-state.js +0 -4
  128. package/dist/shims/i18n-state.js.map +1 -1
  129. package/dist/shims/internal/app-router-context.d.ts +6 -6
  130. package/dist/shims/internal/router-context.d.ts +2 -2
  131. package/dist/shims/layout-segment-context.d.ts +2 -2
  132. package/dist/shims/link.js +19 -11
  133. package/dist/shims/link.js.map +1 -1
  134. package/dist/shims/metadata.d.ts +3 -3
  135. package/dist/shims/navigation-state.d.ts +2 -0
  136. package/dist/shims/navigation-state.js +0 -13
  137. package/dist/shims/navigation-state.js.map +1 -1
  138. package/dist/shims/navigation.d.ts +56 -9
  139. package/dist/shims/navigation.js +112 -28
  140. package/dist/shims/navigation.js.map +1 -1
  141. package/dist/shims/navigation.react-server.d.ts +14 -0
  142. package/dist/shims/navigation.react-server.js +29 -0
  143. package/dist/shims/navigation.react-server.js.map +1 -0
  144. package/dist/shims/request-context.d.ts +1 -0
  145. package/dist/shims/request-context.js +0 -9
  146. package/dist/shims/request-context.js.map +1 -1
  147. package/dist/shims/request-state-types.d.ts +1 -1
  148. package/dist/shims/router-state.d.ts +1 -0
  149. package/dist/shims/router-state.js +0 -5
  150. package/dist/shims/router-state.js.map +1 -1
  151. package/dist/shims/slot.d.ts +11 -7
  152. package/dist/shims/slot.js +28 -19
  153. package/dist/shims/slot.js.map +1 -1
  154. package/dist/shims/unified-request-context.d.ts +2 -0
  155. package/dist/shims/unified-request-context.js +0 -14
  156. package/dist/shims/unified-request-context.js.map +1 -1
  157. package/dist/utils/mdx-scan.d.ts +10 -0
  158. package/dist/utils/mdx-scan.js +36 -0
  159. package/dist/utils/mdx-scan.js.map +1 -0
  160. package/dist/utils/public-routes.d.ts +5 -0
  161. package/dist/utils/public-routes.js +50 -0
  162. package/dist/utils/public-routes.js.map +1 -0
  163. package/package.json +3 -3
  164. package/dist/plugins/fix-use-server-closure-collision.d.ts +0 -29
  165. package/dist/plugins/fix-use-server-closure-collision.js +0 -204
  166. package/dist/plugins/fix-use-server-closure-collision.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,160 +1,9 @@
1
1
  import { NextConfig, NextConfigInput } from "./config/next-config.js";
2
2
  import { AppStaticExportOptions, StaticExportOptions, StaticExportResult, staticExportApp, staticExportPages } from "./build/static-export.js";
3
- import { matchConfigPattern } from "./config/config-matchers.js";
4
- import { asyncHooksStubPlugin } from "./plugins/async-hooks-stub.js";
5
- import { _findBalancedObject, _findCallEnd, parseStaticObjectLiteral } from "./plugins/fonts.js";
6
- import { computeLazyChunks } from "./utils/lazy-chunks.js";
7
3
  import { PluginOption } from "vite";
8
4
  import { Options } from "@vitejs/plugin-react";
9
5
 
10
6
  //#region src/index.d.ts
11
- /**
12
- * Module-level cache for resolvePostcssStringPlugins — avoids re-scanning per Vite environment.
13
- * Stores the Promise itself so concurrent calls (RSC/SSR/Client config() hooks firing in
14
- * parallel) all await the same in-flight scan rather than each starting their own.
15
- */
16
- declare const _postcssCache: Map<string, Promise<{
17
- plugins: unknown[];
18
- } | undefined>>;
19
- /**
20
- * Resolve PostCSS string plugin names in a project's PostCSS config.
21
- *
22
- * Next.js (via postcss-load-config) resolves string plugin names in the
23
- * object form `{ plugins: { "pkg-name": opts } }` but NOT in the array form
24
- * `{ plugins: ["pkg-name"] }`. Since many Next.js projects use the array
25
- * form (particularly with Tailwind CSS v4), we detect this case and resolve
26
- * the string names to actual plugin functions so Vite can use them.
27
- *
28
- * Returns the resolved PostCSS config object to inject into Vite's
29
- * `css.postcss`, or `undefined` if no resolution is needed.
30
- */
31
- declare function resolvePostcssStringPlugins(projectRoot: string): Promise<{
32
- plugins: unknown[];
33
- } | undefined>;
34
- /**
35
- * manualChunks function for client builds.
36
- *
37
- * Splits the client bundle into:
38
- * - "framework" — React, ReactDOM, and scheduler (loaded on every page)
39
- * - "vinext" — vinext shims (router, head, link, etc.)
40
- *
41
- * All other vendor code is left to Rollup's default chunk-splitting
42
- * algorithm. Rollup automatically deduplicates shared modules into
43
- * common chunks based on the import graph — no manual intervention
44
- * needed.
45
- *
46
- * Why not split every npm package into its own chunk?
47
- * - Per-package splitting (`vendor-X`) creates 50-200+ chunks for a
48
- * typical app, far exceeding the ~25-request sweet spot for HTTP/2.
49
- * - gzip/brotli compress small files poorly — each file restarts with
50
- * an empty dictionary, losing ~5-15% total compressed size vs fewer
51
- * larger chunks (Khan Academy measured +2.5% wire size with 10x
52
- * more files containing less raw code).
53
- * - ES module evaluation has per-module overhead that compounds on
54
- * mobile devices.
55
- * - No major Vite-based framework (Remix, SvelteKit, Astro, TanStack)
56
- * uses per-package splitting. Next.js only isolates packages >160KB.
57
- * - Rollup's graph-based splitting already handles the common case
58
- * well: shared dependencies between routes get their own chunks,
59
- * and route-specific code stays in route chunks.
60
- */
61
- declare function clientManualChunks(id: string): string | undefined;
62
- /**
63
- * Rollup output config with manualChunks for client code-splitting.
64
- * Used by both CLI builds and multi-environment builds.
65
- *
66
- * experimentalMinChunkSize merges tiny shared chunks (< 10KB) back into
67
- * their importers. This reduces HTTP request count and improves gzip
68
- * compression efficiency — small files restart the compression dictionary,
69
- * adding ~5-15% wire overhead vs fewer larger chunks.
70
- */
71
- declare const clientOutputConfig: {
72
- manualChunks: typeof clientManualChunks;
73
- experimentalMinChunkSize: number;
74
- };
75
- /**
76
- * Rollup treeshake configuration for production client builds.
77
- *
78
- * Uses the 'recommended' preset as a safe base, then overrides
79
- * moduleSideEffects to strip unused re-exports from npm packages.
80
- *
81
- * The 'no-external' value for moduleSideEffects means:
82
- * - Local project modules: preserve side effects (CSS imports, polyfills)
83
- * - node_modules packages: treat as side-effect-free unless exports are used
84
- *
85
- * This is the single highest-impact optimization for large barrel-exporting
86
- * libraries like mermaid, @mui/material, lucide-react, etc. These libraries
87
- * re-export hundreds of sub-modules through barrel files. Without this,
88
- * Rollup preserves every sub-module even when only a few exports are consumed.
89
- *
90
- * Why 'no-external' instead of false (global side-effect-free)?
91
- * - User code may rely on import-time side effects (e.g., `import './global.css'`)
92
- * - 'no-external' is safe for app code while still enabling aggressive DCE for deps
93
- *
94
- * Why not the 'smallest' preset?
95
- * - 'smallest' also sets propertyReadSideEffects: false and
96
- * tryCatchDeoptimization: false, which can break specific libraries
97
- * that rely on property access side effects or try/catch for feature detection
98
- * - 'recommended' + 'no-external' gives most of the benefit with less risk
99
- *
100
- * @deprecated Use getClientTreeshakeConfigForVite(viteMajorVersion) instead
101
- * for Vite version compatibility. Kept for backward compatibility.
102
- */
103
- declare const clientTreeshakeConfig: {
104
- preset: "recommended";
105
- moduleSideEffects: "no-external";
106
- };
107
- declare function getClientOutputConfigForVite(viteMajorVersion: number): {
108
- manualChunks: typeof clientManualChunks;
109
- experimentalMinChunkSize: number;
110
- } | {
111
- codeSplitting: {
112
- minSize: number;
113
- groups: {
114
- name(moduleId: string): string | null;
115
- }[];
116
- };
117
- };
118
- /**
119
- * Returns treeshake configuration appropriate for the Vite version.
120
- *
121
- * Rollup (Vite 7) supports presets like "recommended" which set multiple
122
- * treeshake options at once. Rolldown (Vite 8+) doesn't support presets,
123
- * so we only return moduleSideEffects for Vite 8+.
124
- *
125
- * The Rollup "recommended" preset sets:
126
- * - annotations: true (Rolldown default is also true)
127
- * - manualPureFunctions: [] (Rolldown default is also [])
128
- * - propertyReadSideEffects: true (Rolldown equivalent is 'always', the default)
129
- * - unknownGlobalSideEffects: false (Rolldown default is true — this is a known acceptable
130
- * divergence. Slightly less aggressive DCE on unknown globals, acceptable for client bundles)
131
- * - correctVarValueBeforeDeclaration and tryCatchDeoptimization (Rolldown handles these differently)
132
- *
133
- * The key optimization is moduleSideEffects: "no-external", which is supported
134
- * by both bundlers and provides the DCE benefits for barrel-exporting libraries.
135
- * It treats node_modules as side-effect-free (enabling aggressive DCE) while
136
- * preserving side effects in local code.
137
- */
138
- declare function getClientTreeshakeConfigForVite(viteMajorVersion: number): {
139
- moduleSideEffects: "no-external";
140
- preset?: undefined;
141
- } | {
142
- preset: "recommended";
143
- moduleSideEffects: "no-external";
144
- };
145
- type BundleBackfillChunk = {
146
- type: "chunk";
147
- fileName: string;
148
- imports?: string[];
149
- modules?: Record<string, unknown>;
150
- viteMetadata?: {
151
- importedCss?: Set<string>;
152
- importedAssets?: Set<string>;
153
- };
154
- };
155
- declare function augmentSsrManifestFromBundle(ssrManifest: Record<string, string[]>, bundle: Record<string, BundleBackfillChunk | {
156
- type: string;
157
- }>, root: string, base?: string): Record<string, string[]>;
158
7
  type VinextOptions = {
159
8
  /**
160
9
  * Base directory containing the app/ and pages/ directories.
@@ -243,23 +92,6 @@ type VinextOptions = {
243
92
  };
244
93
  };
245
94
  declare function vinext(options?: VinextOptions): PluginOption[];
246
- /**
247
- * Strip server-only data-fetching exports (getServerSideProps,
248
- * getStaticProps, getStaticPaths) from page modules for the client
249
- * bundle. Uses Vite's parseAst (Rollup/acorn) for correct handling
250
- * of all export patterns including function expressions, arrow
251
- * functions with TS return types, and re-exports.
252
- *
253
- * Modeled after Next.js's SWC `next-ssg-transform`.
254
- */
255
- declare function stripServerExports(code: string): string | null;
256
- /** Module-level cache for hasMdxFiles — avoids re-scanning per Vite environment. */
257
- declare const _mdxScanCache: Map<string, boolean>;
258
- /**
259
- * Check if the project has .mdx files in app/ or pages/ directories.
260
- */
261
- declare function hasMdxFiles(root: string, appDir: string | null, pagesDir: string | null): boolean;
262
- declare function scanPublicFileRoutes(root: string): string[];
263
95
  //#endregion
264
- export { type AppStaticExportOptions, type NextConfig, type StaticExportOptions, type StaticExportResult, VinextOptions, asyncHooksStubPlugin as _asyncHooksStubPlugin, augmentSsrManifestFromBundle as _augmentSsrManifestFromBundle, _findBalancedObject, _findCallEnd, hasMdxFiles as _hasMdxFiles, _mdxScanCache, parseStaticObjectLiteral as _parseStaticObjectLiteral, _postcssCache, resolvePostcssStringPlugins as _resolvePostcssStringPlugins, scanPublicFileRoutes as _scanPublicFileRoutes, stripServerExports as _stripServerExports, clientManualChunks, clientOutputConfig, clientTreeshakeConfig, computeLazyChunks, vinext as default, getClientOutputConfigForVite, getClientTreeshakeConfigForVite, matchConfigPattern, staticExportApp, staticExportPages };
96
+ export { type AppStaticExportOptions, type NextConfig, type StaticExportOptions, type StaticExportResult, VinextOptions, vinext as default, staticExportApp, staticExportPages };
265
97
  //# sourceMappingURL=index.d.ts.map