vinext 0.1.7 → 0.2.0
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 +51 -30
- package/dist/build/inject-pregenerated-paths.d.ts +4 -0
- package/dist/build/inject-pregenerated-paths.js +18 -0
- package/dist/build/layout-classification.js +1 -1
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +11 -0
- package/dist/build/pages-client-assets-module.js +27 -0
- package/dist/build/prerender.d.ts +2 -1
- package/dist/build/prerender.js +13 -6
- package/dist/build/report.d.ts +13 -2
- package/dist/build/report.js +99 -2
- package/dist/build/run-prerender.d.ts +7 -0
- package/dist/build/run-prerender.js +10 -1
- package/dist/build/standalone.js +2 -0
- package/dist/cache/cache-adapters-virtual.js +3 -3
- package/dist/check.d.ts +18 -0
- package/dist/check.js +77 -19
- package/dist/cli-args.d.ts +1 -2
- package/dist/cli-args.js +1 -1
- package/dist/cli-dev-config.d.ts +12 -0
- package/dist/cli-dev-config.js +23 -0
- package/dist/cli.js +113 -97
- package/dist/{server → client}/dev-error-overlay-store.d.ts +1 -1
- package/dist/{server → client}/dev-error-overlay-store.js +1 -1
- package/dist/{server → client}/dev-error-overlay.d.ts +1 -1
- package/dist/{server → client}/dev-error-overlay.js +2 -2
- package/dist/client/navigation-runtime.d.ts +2 -0
- package/dist/client/navigation-runtime.js +3 -1
- package/dist/client/window-next.d.ts +2 -1
- package/dist/cloudflare/index.d.ts +2 -2
- package/dist/cloudflare/index.js +2 -2
- package/dist/config/config-matchers.js +14 -10
- package/dist/config/next-config.d.ts +6 -3
- package/dist/config/next-config.js +47 -1
- package/dist/config/prerender.d.ts +34 -0
- package/dist/config/prerender.js +55 -0
- package/dist/config/server-external-packages.d.ts +4 -0
- package/dist/config/server-external-packages.js +91 -0
- package/dist/entries/app-rsc-entry.d.ts +2 -1
- package/dist/entries/app-rsc-entry.js +89 -15
- package/dist/entries/app-rsc-manifest.js +10 -0
- package/dist/entries/pages-client-entry.d.ts +3 -0
- package/dist/entries/pages-client-entry.js +16 -1
- package/dist/entries/pages-server-entry.js +6 -2
- package/dist/image/image-adapters-virtual.d.ts +59 -0
- package/dist/image/image-adapters-virtual.js +59 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +211 -118
- package/dist/init-cloudflare.d.ts +43 -0
- package/dist/init-cloudflare.js +839 -0
- package/dist/init-platform.d.ts +40 -0
- package/dist/init-platform.js +195 -0
- package/dist/init.d.ts +16 -38
- package/dist/init.js +208 -97
- package/dist/node_modules/.pnpm/am-i-vibing@0.5.0/node_modules/am-i-vibing/dist/detector-1yx2Hoe0.js +294 -0
- package/dist/node_modules/.pnpm/process-ancestry@0.1.0/node_modules/process-ancestry/dist/index.js +94 -0
- package/dist/{cloudflare → packages/cloudflare}/src/cache/cdn-adapter.runtime.js +1 -1
- package/dist/{cloudflare → packages/cloudflare}/src/cache/kv-data-adapter.runtime.d.ts +2 -2
- package/dist/{cloudflare → packages/cloudflare}/src/cache/kv-data-adapter.runtime.js +1 -1
- package/dist/packages/cloudflare/src/deploy-config.js +150 -0
- package/dist/packages/cloudflare/src/deploy-help.js +55 -0
- package/dist/packages/cloudflare/src/deploy.js +276 -0
- package/dist/{cloudflare → packages/cloudflare/src}/tpr.d.ts +4 -41
- package/dist/{cloudflare → packages/cloudflare/src}/tpr.js +18 -15
- package/dist/plugins/ast-scope.d.ts +16 -0
- package/dist/plugins/ast-scope.js +62 -0
- package/dist/plugins/ast-utils.d.ts +27 -1
- package/dist/plugins/ast-utils.js +32 -1
- package/dist/plugins/css-module-imports.d.ts +14 -0
- package/dist/plugins/css-module-imports.js +59 -0
- package/dist/plugins/extensionless-dynamic-import.js +2 -2
- package/dist/plugins/ignore-dynamic-requests.d.ts +11 -0
- package/dist/plugins/ignore-dynamic-requests.js +530 -0
- package/dist/plugins/middleware-server-only.d.ts +8 -6
- package/dist/plugins/middleware-server-only.js +8 -7
- package/dist/plugins/optimize-imports.js +1 -1
- package/dist/plugins/typeof-window.d.ts +1 -1
- package/dist/plugins/typeof-window.js +28 -56
- package/dist/routing/app-route-graph.d.ts +29 -4
- package/dist/routing/app-route-graph.js +182 -40
- package/dist/routing/app-router.d.ts +5 -0
- package/dist/routing/app-router.js +5 -0
- package/dist/routing/file-matcher.d.ts +8 -0
- package/dist/routing/file-matcher.js +10 -1
- package/dist/routing/pages-router.js +2 -2
- package/dist/server/api-handler.js +9 -14
- package/dist/server/app-browser-action-result.d.ts +4 -1
- package/dist/server/app-browser-action-result.js +8 -1
- package/dist/server/app-browser-entry.js +194 -190
- package/dist/server/app-browser-history-controller.d.ts +2 -1
- package/dist/server/app-browser-history-controller.js +6 -2
- package/dist/server/app-browser-interception-context.d.ts +1 -0
- package/dist/server/app-browser-interception-context.js +4 -2
- package/dist/server/app-browser-navigation-controller.d.ts +2 -0
- package/dist/server/app-browser-navigation-controller.js +60 -31
- package/dist/server/app-browser-server-action-client.d.ts +32 -0
- package/dist/server/app-browser-server-action-client.js +127 -0
- package/dist/server/app-browser-state.d.ts +11 -1
- package/dist/server/app-browser-state.js +25 -8
- package/dist/server/app-browser-visible-commit.d.ts +6 -1
- package/dist/server/app-browser-visible-commit.js +43 -25
- package/dist/server/app-elements-wire.d.ts +9 -2
- package/dist/server/app-elements-wire.js +8 -1
- package/dist/server/app-elements.d.ts +2 -2
- package/dist/server/app-elements.js +4 -3
- package/dist/server/app-fallback-renderer.d.ts +5 -2
- package/dist/server/app-fallback-renderer.js +15 -7
- package/dist/server/app-hydration-cache-publication.d.ts +11 -0
- package/dist/server/app-hydration-cache-publication.js +43 -0
- package/dist/server/app-middleware.d.ts +4 -3
- package/dist/server/app-middleware.js +8 -3
- package/dist/server/app-optimistic-routing.js +11 -4
- package/dist/server/app-page-boundary-render.d.ts +3 -0
- package/dist/server/app-page-boundary-render.js +14 -3
- package/dist/server/app-page-cache-finalizer.d.ts +1 -0
- package/dist/server/app-page-cache-finalizer.js +10 -3
- package/dist/server/app-page-cache-render.d.ts +1 -0
- package/dist/server/app-page-cache-render.js +8 -4
- package/dist/server/app-page-cache.d.ts +1 -0
- package/dist/server/app-page-cache.js +5 -2
- package/dist/server/app-page-dispatch.d.ts +33 -4
- package/dist/server/app-page-dispatch.js +63 -90
- package/dist/server/app-page-element-builder.d.ts +9 -2
- package/dist/server/app-page-element-builder.js +114 -23
- package/dist/server/app-page-head.d.ts +16 -1
- package/dist/server/app-page-head.js +44 -22
- package/dist/server/app-page-params.d.ts +2 -1
- package/dist/server/app-page-params.js +8 -1
- package/dist/server/app-page-ppr-runtime.d.ts +7 -0
- package/dist/server/app-page-ppr-runtime.js +70 -0
- package/dist/server/app-page-probe.d.ts +1 -0
- package/dist/server/app-page-probe.js +6 -1
- package/dist/server/app-page-render-identity.d.ts +1 -0
- package/dist/server/app-page-render-identity.js +1 -1
- package/dist/server/app-page-render.d.ts +4 -1
- package/dist/server/app-page-render.js +26 -3
- package/dist/server/app-page-request.d.ts +22 -1
- package/dist/server/app-page-request.js +92 -15
- package/dist/server/app-page-route-wiring.d.ts +14 -2
- package/dist/server/app-page-route-wiring.js +61 -25
- package/dist/server/app-page-search-params-observation.d.ts +4 -2
- package/dist/server/app-page-search-params-observation.js +11 -7
- package/dist/server/app-page-segment-state.d.ts +2 -1
- package/dist/server/app-page-segment-state.js +3 -1
- package/dist/server/app-page-stream.d.ts +5 -0
- package/dist/server/app-page-stream.js +3 -1
- package/dist/server/app-ppr-fallback-shell-render.d.ts +4 -3
- package/dist/server/app-route-handler-dispatch.js +1 -0
- package/dist/server/app-route-handler-execution.js +7 -2
- package/dist/server/app-route-handler-response.js +1 -0
- package/dist/server/app-route-handler-runtime.js +1 -1
- package/dist/server/app-route-module-loader.d.ts +2 -0
- package/dist/server/app-route-module-loader.js +1 -0
- package/dist/server/app-router-entry.js +16 -8
- package/dist/server/app-rsc-errors.js +7 -1
- package/dist/server/app-rsc-handler.d.ts +3 -1
- package/dist/server/app-rsc-handler.js +67 -39
- package/dist/server/app-rsc-request-normalization.d.ts +3 -2
- package/dist/server/app-rsc-request-normalization.js +6 -3
- package/dist/server/app-rsc-route-matching.d.ts +7 -0
- package/dist/server/app-rsc-route-matching.js +36 -3
- package/dist/server/app-segment-config.d.ts +12 -0
- package/dist/server/app-segment-config.js +91 -5
- package/dist/server/app-server-action-execution.d.ts +5 -0
- package/dist/server/app-server-action-execution.js +94 -33
- package/dist/server/app-ssr-entry.d.ts +3 -0
- package/dist/server/app-ssr-entry.js +19 -8
- package/dist/server/app-ssr-stream.d.ts +7 -3
- package/dist/server/app-ssr-stream.js +10 -6
- package/dist/server/app-static-generation.d.ts +1 -0
- package/dist/server/app-static-generation.js +1 -0
- package/dist/server/app-visited-response-cache.d.ts +6 -0
- package/dist/server/app-visited-response-cache.js +3 -1
- package/dist/server/client-trace-metadata.js +26 -0
- package/dist/server/default-global-not-found-module.d.ts +14 -0
- package/dist/server/default-global-not-found-module.js +14 -0
- package/dist/server/dev-route-files.js +4 -0
- package/dist/server/dev-server.js +19 -18
- package/dist/server/dev-stack-sourcemap.d.ts +1 -1
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/fetch-handler.d.ts +2 -0
- package/dist/server/fetch-handler.js +18 -0
- package/dist/server/headers.d.ts +5 -15
- package/dist/server/headers.js +4 -15
- package/dist/server/image-optimization.d.ts +51 -1
- package/dist/server/image-optimization.js +52 -2
- package/dist/server/implicit-tags.js +1 -1
- package/dist/server/isr-cache.d.ts +1 -1
- package/dist/server/isr-cache.js +2 -2
- package/dist/server/metadata-routes.d.ts +3 -1
- package/dist/server/metadata-routes.js +12 -2
- package/dist/server/middleware-runtime.js +6 -1
- package/dist/server/navigation-planner.d.ts +1 -0
- package/dist/server/navigation-planner.js +14 -3
- package/dist/server/pages-api-route.js +2 -2
- package/dist/server/pages-asset-tags.d.ts +4 -6
- package/dist/server/pages-asset-tags.js +12 -12
- package/dist/server/pages-client-assets.d.ts +12 -0
- package/dist/server/pages-client-assets.js +10 -0
- package/dist/server/pages-node-compat.d.ts +8 -1
- package/dist/server/pages-node-compat.js +32 -4
- package/dist/server/pages-page-data.d.ts +24 -1
- package/dist/server/pages-page-data.js +45 -24
- package/dist/server/pages-page-handler.d.ts +2 -1
- package/dist/server/pages-page-handler.js +19 -12
- package/dist/server/pages-page-response.d.ts +7 -0
- package/dist/server/pages-page-response.js +4 -1
- package/dist/server/pages-request-pipeline.d.ts +2 -0
- package/dist/server/pages-request-pipeline.js +25 -1
- package/dist/server/pages-router-entry.d.ts +30 -0
- package/dist/server/pages-router-entry.js +108 -0
- package/dist/server/prerender-manifest.d.ts +3 -1
- package/dist/server/prerender-route-params.js +1 -1
- package/dist/server/prod-server.d.ts +1 -1
- package/dist/server/prod-server.js +48 -26
- package/dist/server/request-pipeline.js +1 -0
- package/dist/server/seed-cache.js +4 -4
- package/dist/server/worker-utils.d.ts +2 -1
- package/dist/server/worker-utils.js +7 -1
- package/dist/shims/app-router-scroll-state.d.ts +1 -0
- package/dist/shims/app-router-scroll-state.js +1 -0
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/cache.js +19 -15
- package/dist/shims/cdn-cache.js +1 -1
- package/dist/shims/dynamic-preload-chunks.js +2 -1
- package/dist/shims/error-boundary.d.ts +19 -1
- package/dist/shims/error-boundary.js +11 -1
- package/dist/shims/form.d.ts +3 -1
- package/dist/shims/form.js +37 -43
- package/dist/shims/headers.d.ts +9 -1
- package/dist/shims/headers.js +31 -6
- package/dist/shims/image.js +75 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -17
- package/dist/shims/internal/app-route-detection.js +4 -17
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +23 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.js +51 -0
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +2 -15
- package/dist/shims/internal/hybrid-client-route-owner.js +9 -60
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +9 -5
- package/dist/shims/internal/pages-data-fetch-dedup.js +73 -14
- package/dist/shims/internal/pages-data-target.d.ts +10 -9
- package/dist/shims/internal/pages-data-target.js +91 -12
- package/dist/shims/internal/pages-router-components.d.ts +7 -0
- package/dist/shims/internal/pages-router-components.js +13 -0
- package/dist/shims/layout-segment-context.d.ts +4 -1
- package/dist/shims/layout-segment-context.js +18 -4
- package/dist/shims/link.js +70 -37
- package/dist/shims/metadata.d.ts +3 -2
- package/dist/shims/metadata.js +8 -4
- package/dist/shims/navigation.d.ts +5 -1
- package/dist/shims/navigation.js +45 -10
- package/dist/shims/navigation.react-server.js +1 -1
- package/dist/shims/root-params.d.ts +15 -1
- package/dist/shims/root-params.js +21 -1
- package/dist/shims/router.d.ts +5 -7
- package/dist/shims/router.js +374 -94
- package/dist/shims/server.js +3 -2
- package/dist/shims/slot.js +3 -6
- package/dist/typegen.js +6 -5
- package/dist/utils/client-runtime-metadata.d.ts +2 -18
- package/dist/utils/client-runtime-metadata.js +31 -22
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/{server → utils}/dev-stack-sourcemap-endpoint.js +1 -1
- package/dist/utils/domain-locale.d.ts +6 -3
- package/dist/{server → utils}/middleware-request-headers.d.ts +1 -1
- package/dist/{server → utils}/middleware-request-headers.js +2 -2
- package/dist/utils/path.d.ts +2 -1
- package/dist/utils/path.js +1 -1
- package/dist/utils/project.d.ts +52 -2
- package/dist/utils/project.js +230 -5
- package/dist/utils/protocol-headers.d.ts +17 -0
- package/dist/utils/protocol-headers.js +17 -0
- package/dist/utils/react-version.d.ts +4 -0
- package/dist/utils/react-version.js +44 -0
- package/package.json +53 -4
- package/dist/deploy.d.ts +0 -190
- package/dist/deploy.js +0 -1033
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +0 -4
- /package/dist/{cloudflare → packages/cloudflare}/src/utils/cache-control-metadata.js +0 -0
package/dist/check.d.ts
CHANGED
|
@@ -59,22 +59,40 @@ type CheckResult = {
|
|
|
59
59
|
declare function hasFreeCjsGlobal(content: string): boolean;
|
|
60
60
|
/**
|
|
61
61
|
* Scan source files for `import ... from 'next/...'` statements.
|
|
62
|
+
*
|
|
63
|
+
* `root` must be forward-slash: it is passed to `findSourceFiles` (which
|
|
64
|
+
* requires it) and used as the base of `path.posix.relative`, which only yields
|
|
65
|
+
* a canonical relative path when both operands are forward-slash.
|
|
62
66
|
*/
|
|
63
67
|
declare function scanImports(root: string): CheckItem[];
|
|
64
68
|
/**
|
|
65
69
|
* Analyze next.config.js/mjs/ts for supported and unsupported options.
|
|
70
|
+
*
|
|
71
|
+
* `root` must be forward-slash — joined with `path.posix.join`. Only called
|
|
72
|
+
* from `runCheck`, which normalizes it.
|
|
66
73
|
*/
|
|
67
74
|
declare function analyzeConfig(root: string): CheckItem[];
|
|
68
75
|
/**
|
|
69
76
|
* Check package.json dependencies for known libraries.
|
|
77
|
+
*
|
|
78
|
+
* `root` must be forward-slash — joined with `path.posix.join`. Only called
|
|
79
|
+
* from `runCheck`, which normalizes it.
|
|
70
80
|
*/
|
|
71
81
|
declare function checkLibraries(root: string): CheckItem[];
|
|
72
82
|
/**
|
|
73
83
|
* Check file conventions (pages, app directory, middleware, etc.)
|
|
84
|
+
*
|
|
85
|
+
* `root` must be forward-slash — joined with `path.posix.join`, passed to
|
|
86
|
+
* `findDir`, and used as the base of `path.posix.relative`. Only called from
|
|
87
|
+
* `runCheck`, which normalizes it.
|
|
74
88
|
*/
|
|
75
89
|
declare function checkConventions(root: string): CheckItem[];
|
|
76
90
|
/**
|
|
77
91
|
* Run the full compatibility check.
|
|
92
|
+
*
|
|
93
|
+
* `root` must be forward-slash — callers normalize it at the CLI entry, and it
|
|
94
|
+
* is forwarded to `scanImports` / `checkConventions` / `findDir`, which build
|
|
95
|
+
* paths with `path.posix.*`.
|
|
78
96
|
*/
|
|
79
97
|
declare function runCheck(root: string): CheckResult;
|
|
80
98
|
/**
|
package/dist/check.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { detectPackageManager, findDir } from "./utils/project.js";
|
|
2
|
-
import { normalizePathSeparators } from "./utils/path.js";
|
|
3
2
|
import fs from "node:fs";
|
|
4
3
|
import path from "node:path";
|
|
5
4
|
import { parseAst } from "vite";
|
|
@@ -193,7 +192,7 @@ const CONFIG_SUPPORT = {
|
|
|
193
192
|
env: { status: "supported" },
|
|
194
193
|
images: {
|
|
195
194
|
status: "partial",
|
|
196
|
-
detail: "remotePatterns validated,
|
|
195
|
+
detail: "remotePatterns validated; on-the-fly optimization via images.optimizer (Cloudflare Images), passthrough otherwise"
|
|
197
196
|
},
|
|
198
197
|
allowedDevOrigins: {
|
|
199
198
|
status: "supported",
|
|
@@ -259,6 +258,42 @@ const CONFIG_SUPPORT = {
|
|
|
259
258
|
status: "partial",
|
|
260
259
|
detail: "config recognized; vinext does not implement navigation result caching"
|
|
261
260
|
},
|
|
261
|
+
"experimental.middlewarePrefetch": {
|
|
262
|
+
status: "unsupported",
|
|
263
|
+
detail: "not recognized; use of this option is ignored"
|
|
264
|
+
},
|
|
265
|
+
"experimental.proxyPrefetch": {
|
|
266
|
+
status: "unsupported",
|
|
267
|
+
detail: "not recognized; use of this option is ignored"
|
|
268
|
+
},
|
|
269
|
+
"experimental.middlewareClientMaxBodySize": {
|
|
270
|
+
status: "unsupported",
|
|
271
|
+
detail: "not recognized; use of this option is ignored"
|
|
272
|
+
},
|
|
273
|
+
"experimental.proxyClientMaxBodySize": {
|
|
274
|
+
status: "unsupported",
|
|
275
|
+
detail: "not recognized; use of this option is ignored"
|
|
276
|
+
},
|
|
277
|
+
"experimental.externalMiddlewareRewritesResolve": {
|
|
278
|
+
status: "unsupported",
|
|
279
|
+
detail: "not recognized; use of this option is ignored"
|
|
280
|
+
},
|
|
281
|
+
"experimental.externalProxyRewritesResolve": {
|
|
282
|
+
status: "unsupported",
|
|
283
|
+
detail: "not recognized; use of this option is ignored"
|
|
284
|
+
},
|
|
285
|
+
"experimental.instrumentationHook": {
|
|
286
|
+
status: "unsupported",
|
|
287
|
+
detail: "not recognized; instrumentation files are enabled automatically"
|
|
288
|
+
},
|
|
289
|
+
skipMiddlewareUrlNormalize: {
|
|
290
|
+
status: "unsupported",
|
|
291
|
+
detail: "not recognized; use of this option is ignored"
|
|
292
|
+
},
|
|
293
|
+
skipProxyUrlNormalize: {
|
|
294
|
+
status: "unsupported",
|
|
295
|
+
detail: "not recognized; use of this option is ignored"
|
|
296
|
+
},
|
|
262
297
|
"i18n.domains": {
|
|
263
298
|
status: "partial",
|
|
264
299
|
detail: "supported for Pages Router; App Router unchanged"
|
|
@@ -331,6 +366,11 @@ const LIBRARY_SUPPORT = {
|
|
|
331
366
|
};
|
|
332
367
|
/**
|
|
333
368
|
* Recursively find all source files in a directory.
|
|
369
|
+
*
|
|
370
|
+
* `dir` must be forward-slash, and the returned paths are forward-slash too:
|
|
371
|
+
* each entry is joined with `path.posix.join`, which only stays canonical when
|
|
372
|
+
* the base already is. This keeps downstream substring checks (e.g.
|
|
373
|
+
* `f.includes("/api/")`) and reported paths consistent across platforms.
|
|
334
374
|
*/
|
|
335
375
|
function findSourceFiles(dir, extensions = [
|
|
336
376
|
".ts",
|
|
@@ -343,7 +383,7 @@ function findSourceFiles(dir, extensions = [
|
|
|
343
383
|
if (!fs.existsSync(dir)) return results;
|
|
344
384
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
345
385
|
for (const entry of entries) {
|
|
346
|
-
const fullPath =
|
|
386
|
+
const fullPath = path.posix.join(dir, entry.name);
|
|
347
387
|
if (entry.isDirectory()) {
|
|
348
388
|
if (entry.name === "node_modules" || entry.name === ".next" || entry.name === "dist" || entry.name === ".git") continue;
|
|
349
389
|
results.push(...findSourceFiles(fullPath, extensions));
|
|
@@ -547,6 +587,10 @@ function hasFreeCjsGlobal(content) {
|
|
|
547
587
|
}
|
|
548
588
|
/**
|
|
549
589
|
* Scan source files for `import ... from 'next/...'` statements.
|
|
590
|
+
*
|
|
591
|
+
* `root` must be forward-slash: it is passed to `findSourceFiles` (which
|
|
592
|
+
* requires it) and used as the base of `path.posix.relative`, which only yields
|
|
593
|
+
* a canonical relative path when both operands are forward-slash.
|
|
550
594
|
*/
|
|
551
595
|
function scanImports(root) {
|
|
552
596
|
const files = findSourceFiles(root);
|
|
@@ -564,7 +608,7 @@ function scanImports(root) {
|
|
|
564
608
|
if (mod.startsWith("next/") || mod === "next" || mod === "server-only" || mod === "client-only") {
|
|
565
609
|
const normalized = mod === "next" ? "next" : mod;
|
|
566
610
|
if (!importUsage.has(normalized)) importUsage.set(normalized, []);
|
|
567
|
-
const relFile =
|
|
611
|
+
const relFile = path.posix.relative(root, file);
|
|
568
612
|
const usedInFiles = importUsage.get(normalized) ?? [];
|
|
569
613
|
if (!usedInFiles.includes(relFile)) usedInFiles.push(relFile);
|
|
570
614
|
}
|
|
@@ -691,6 +735,9 @@ function collectConfigKeys(source) {
|
|
|
691
735
|
}
|
|
692
736
|
/**
|
|
693
737
|
* Analyze next.config.js/mjs/ts for supported and unsupported options.
|
|
738
|
+
*
|
|
739
|
+
* `root` must be forward-slash — joined with `path.posix.join`. Only called
|
|
740
|
+
* from `runCheck`, which normalizes it.
|
|
694
741
|
*/
|
|
695
742
|
function analyzeConfig(root) {
|
|
696
743
|
const configFiles = [
|
|
@@ -702,7 +749,7 @@ function analyzeConfig(root) {
|
|
|
702
749
|
];
|
|
703
750
|
let configPath = null;
|
|
704
751
|
for (const f of configFiles) {
|
|
705
|
-
const p = path.join(root, f);
|
|
752
|
+
const p = path.posix.join(root, f);
|
|
706
753
|
if (fs.existsSync(p)) {
|
|
707
754
|
configPath = p;
|
|
708
755
|
break;
|
|
@@ -729,7 +776,9 @@ function analyzeConfig(root) {
|
|
|
729
776
|
"transpilePackages",
|
|
730
777
|
"webpack",
|
|
731
778
|
"reactStrictMode",
|
|
732
|
-
"poweredByHeader"
|
|
779
|
+
"poweredByHeader",
|
|
780
|
+
"skipMiddlewareUrlNormalize",
|
|
781
|
+
"skipProxyUrlNormalize"
|
|
733
782
|
]) {
|
|
734
783
|
if (!present.top.has(opt)) continue;
|
|
735
784
|
const support = CONFIG_SUPPORT[opt];
|
|
@@ -757,9 +806,12 @@ function analyzeConfig(root) {
|
|
|
757
806
|
}
|
|
758
807
|
/**
|
|
759
808
|
* Check package.json dependencies for known libraries.
|
|
809
|
+
*
|
|
810
|
+
* `root` must be forward-slash — joined with `path.posix.join`. Only called
|
|
811
|
+
* from `runCheck`, which normalizes it.
|
|
760
812
|
*/
|
|
761
813
|
function checkLibraries(root) {
|
|
762
|
-
const pkgPath = path.join(root, "package.json");
|
|
814
|
+
const pkgPath = path.posix.join(root, "package.json");
|
|
763
815
|
if (!fs.existsSync(pkgPath)) return [];
|
|
764
816
|
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
765
817
|
const allDeps = {
|
|
@@ -777,17 +829,19 @@ function checkLibraries(root) {
|
|
|
777
829
|
}
|
|
778
830
|
/**
|
|
779
831
|
* Check file conventions (pages, app directory, middleware, etc.)
|
|
832
|
+
*
|
|
833
|
+
* `root` must be forward-slash — joined with `path.posix.join`, passed to
|
|
834
|
+
* `findDir`, and used as the base of `path.posix.relative`. Only called from
|
|
835
|
+
* `runCheck`, which normalizes it.
|
|
780
836
|
*/
|
|
781
837
|
function checkConventions(root) {
|
|
782
838
|
const items = [];
|
|
783
|
-
const pagesDir = findDir(root, "pages",
|
|
784
|
-
const appDirPath = findDir(root, "app",
|
|
785
|
-
const
|
|
786
|
-
const
|
|
787
|
-
const hasProxy = fs.existsSync(path.join(root, "proxy.ts")) || fs.existsSync(path.join(root, "proxy.js"));
|
|
788
|
-
const hasMiddleware = fs.existsSync(path.join(root, "middleware.ts")) || fs.existsSync(path.join(root, "middleware.js"));
|
|
839
|
+
const pagesDir = findDir(root, "pages", "src/pages");
|
|
840
|
+
const appDirPath = findDir(root, "app", "src/app");
|
|
841
|
+
const hasProxy = fs.existsSync(path.posix.join(root, "proxy.ts")) || fs.existsSync(path.posix.join(root, "proxy.js"));
|
|
842
|
+
const hasMiddleware = fs.existsSync(path.posix.join(root, "middleware.ts")) || fs.existsSync(path.posix.join(root, "middleware.js"));
|
|
789
843
|
if (pagesDir !== null) {
|
|
790
|
-
const isSrc = pagesDir.includes(
|
|
844
|
+
const isSrc = pagesDir.includes("src/pages");
|
|
791
845
|
items.push({
|
|
792
846
|
name: isSrc ? "Pages Router (src/pages/)" : "Pages Router (pages/)",
|
|
793
847
|
status: "supported"
|
|
@@ -813,7 +867,7 @@ function checkConventions(root) {
|
|
|
813
867
|
});
|
|
814
868
|
}
|
|
815
869
|
if (appDirPath !== null) {
|
|
816
|
-
const isSrc = appDirPath.includes(
|
|
870
|
+
const isSrc = appDirPath.includes("src/app");
|
|
817
871
|
items.push({
|
|
818
872
|
name: isSrc ? "App Router (src/app/)" : "App Router (app/)",
|
|
819
873
|
status: "supported"
|
|
@@ -858,12 +912,12 @@ function checkConventions(root) {
|
|
|
858
912
|
name: "middleware.ts (deprecated in Next.js 16)",
|
|
859
913
|
status: "supported"
|
|
860
914
|
});
|
|
861
|
-
if (
|
|
915
|
+
if (pagesDir === null && appDirPath === null) items.push({
|
|
862
916
|
name: "No pages/ or app/ directory found",
|
|
863
917
|
status: "unsupported",
|
|
864
918
|
detail: "vinext requires a pages/ or app/ directory"
|
|
865
919
|
});
|
|
866
|
-
const pkgPath = path.join(root, "package.json");
|
|
920
|
+
const pkgPath = path.posix.join(root, "package.json");
|
|
867
921
|
if (fs.existsSync(pkgPath)) {
|
|
868
922
|
if (JSON.parse(fs.readFileSync(pkgPath, "utf-8")).type !== "module") items.push({
|
|
869
923
|
name: "Missing \"type\": \"module\" in package.json",
|
|
@@ -877,7 +931,7 @@ function checkConventions(root) {
|
|
|
877
931
|
const cjsGlobalFiles = [];
|
|
878
932
|
for (const file of allSourceFiles) {
|
|
879
933
|
const content = fs.readFileSync(file, "utf-8");
|
|
880
|
-
const rel =
|
|
934
|
+
const rel = path.posix.relative(root, file);
|
|
881
935
|
if (viewTransitionRegex.test(content)) viewTransitionFiles.push(rel);
|
|
882
936
|
if (hasFreeCjsGlobal(content)) cjsGlobalFiles.push(rel);
|
|
883
937
|
}
|
|
@@ -892,7 +946,7 @@ function checkConventions(root) {
|
|
|
892
946
|
"postcss.config.js",
|
|
893
947
|
"postcss.config.cjs"
|
|
894
948
|
]) {
|
|
895
|
-
const configPath = path.join(root, configFile);
|
|
949
|
+
const configPath = path.posix.join(root, configFile);
|
|
896
950
|
if (fs.existsSync(configPath)) {
|
|
897
951
|
const content = fs.readFileSync(configPath, "utf-8");
|
|
898
952
|
if (/plugins\s*:\s*\[\s*['"]/.test(content)) items.push({
|
|
@@ -913,6 +967,10 @@ function checkConventions(root) {
|
|
|
913
967
|
}
|
|
914
968
|
/**
|
|
915
969
|
* Run the full compatibility check.
|
|
970
|
+
*
|
|
971
|
+
* `root` must be forward-slash — callers normalize it at the CLI entry, and it
|
|
972
|
+
* is forwarded to `scanImports` / `checkConventions` / `findDir`, which build
|
|
973
|
+
* paths with `path.posix.*`.
|
|
916
974
|
*/
|
|
917
975
|
function runCheck(root) {
|
|
918
976
|
const imports = scanImports(root);
|
package/dist/cli-args.d.ts
CHANGED
|
@@ -18,7 +18,6 @@ type ParsedArgs = {
|
|
|
18
18
|
precompress?: boolean;
|
|
19
19
|
positionals?: string[];
|
|
20
20
|
};
|
|
21
|
-
declare function parsePositiveIntegerArg(raw: string, flag: string): number;
|
|
22
21
|
/**
|
|
23
22
|
* Parse CLI arguments into a structured object.
|
|
24
23
|
*
|
|
@@ -30,4 +29,4 @@ declare function parsePositiveIntegerArg(raw: string, flag: string): number;
|
|
|
30
29
|
*/
|
|
31
30
|
declare function parseArgs(args: string[]): ParsedArgs;
|
|
32
31
|
//#endregion
|
|
33
|
-
export { parseArgs
|
|
32
|
+
export { parseArgs };
|
package/dist/cli-args.js
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Plugin, ServerOptions } from "vite";
|
|
2
|
+
|
|
3
|
+
//#region src/cli-dev-config.d.ts
|
|
4
|
+
type DevServerCliOptions = {
|
|
5
|
+
port?: number;
|
|
6
|
+
hostname?: string;
|
|
7
|
+
};
|
|
8
|
+
declare function applyDevServerDefaults(server: ServerOptions, options: DevServerCliOptions): void;
|
|
9
|
+
declare function createDevServerConfigPlugin(options: DevServerCliOptions): Plugin;
|
|
10
|
+
declare function normalizeDevServerHostname(host: string | boolean | undefined): string;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { DevServerCliOptions, applyDevServerDefaults, createDevServerConfigPlugin, normalizeDevServerHostname };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/cli-dev-config.ts
|
|
2
|
+
function applyDevServerDefaults(server, options) {
|
|
3
|
+
server.port = options.port ?? server.port ?? 3e3;
|
|
4
|
+
server.host = options.hostname ?? server.host ?? "localhost";
|
|
5
|
+
}
|
|
6
|
+
function createDevServerConfigPlugin(options) {
|
|
7
|
+
return {
|
|
8
|
+
name: "vinext:dev-server-config",
|
|
9
|
+
enforce: "post",
|
|
10
|
+
config: {
|
|
11
|
+
order: "post",
|
|
12
|
+
handler(config) {
|
|
13
|
+
applyDevServerDefaults(config.server ??= {}, options);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function normalizeDevServerHostname(host) {
|
|
19
|
+
if (typeof host === "string") return host;
|
|
20
|
+
return host === true ? "0.0.0.0" : "localhost";
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { applyDevServerDefaults, createDevServerConfigPlugin, normalizeDevServerHostname };
|