vinext 0.0.30 → 0.0.31
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 +12 -6
- package/dist/build/prerender.d.ts +188 -0
- package/dist/build/prerender.js +675 -0
- package/dist/build/prerender.js.map +1 -0
- package/dist/build/report.d.ts +45 -46
- package/dist/build/report.js +247 -276
- package/dist/build/report.js.map +1 -1
- package/dist/build/run-prerender.d.ts +62 -0
- package/dist/build/run-prerender.js +183 -0
- package/dist/build/run-prerender.js.map +1 -0
- package/dist/build/server-manifest.d.ts +19 -0
- package/dist/build/server-manifest.js +29 -0
- package/dist/build/server-manifest.js.map +1 -0
- package/dist/build/static-export.d.ts +51 -66
- package/dist/build/static-export.js +51 -545
- package/dist/build/static-export.js.map +1 -1
- package/dist/check.d.ts +26 -24
- package/dist/check.js +591 -571
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts +1 -15
- package/dist/cli.js +430 -491
- package/dist/cli.js.map +1 -1
- package/dist/client/entry.d.ts +1 -2
- package/dist/client/entry.js +49 -62
- package/dist/client/entry.js.map +1 -1
- package/dist/client/validate-module-path.d.ts +4 -1
- package/dist/client/validate-module-path.js +23 -28
- package/dist/client/validate-module-path.js.map +1 -1
- package/dist/client/vinext-next-data.d.ts +15 -20
- package/dist/client/vinext-next-data.js +0 -1
- package/dist/cloudflare/index.d.ts +3 -8
- package/dist/cloudflare/index.js +3 -8
- package/dist/cloudflare/kv-cache-handler.d.ts +95 -105
- package/dist/cloudflare/kv-cache-handler.js +354 -380
- package/dist/cloudflare/kv-cache-handler.js.map +1 -1
- package/dist/cloudflare/tpr.d.ts +36 -34
- package/dist/cloudflare/tpr.js +460 -603
- package/dist/cloudflare/tpr.js.map +1 -1
- package/dist/config/config-matchers.d.ts +31 -40
- package/dist/config/config-matchers.js +727 -936
- package/dist/config/config-matchers.js.map +1 -1
- package/dist/config/dotenv.d.ts +18 -11
- package/dist/config/dotenv.js +79 -84
- package/dist/config/dotenv.js.map +1 -1
- package/dist/config/next-config.d.ts +156 -146
- package/dist/config/next-config.js +374 -464
- package/dist/config/next-config.js.map +1 -1
- package/dist/deploy.d.ts +87 -96
- package/dist/deploy.js +490 -628
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-browser-entry.d.ts +4 -1
- package/dist/entries/app-browser-entry.js +12 -8
- package/dist/entries/app-browser-entry.js.map +1 -1
- package/dist/entries/app-rsc-entry.d.ts +33 -20
- package/dist/entries/app-rsc-entry.js +442 -211
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/app-ssr-entry.d.ts +9 -1
- package/dist/entries/app-ssr-entry.js +61 -28
- package/dist/entries/app-ssr-entry.js.map +1 -1
- package/dist/entries/pages-client-entry.d.ts +6 -2
- package/dist/entries/pages-client-entry.js +30 -33
- package/dist/entries/pages-client-entry.js.map +1 -1
- package/dist/entries/pages-entry-helpers.d.ts +5 -1
- package/dist/entries/pages-entry-helpers.js +17 -14
- package/dist/entries/pages-entry-helpers.js.map +1 -1
- package/dist/entries/pages-server-entry.d.ts +6 -2
- package/dist/entries/pages-server-entry.js +84 -113
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/index.d.ts +82 -62
- package/dist/index.js +2172 -3133
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +40 -37
- package/dist/init.js +201 -258
- package/dist/init.js.map +1 -1
- package/dist/plugins/async-hooks-stub.d.ts +7 -3
- package/dist/plugins/async-hooks-stub.js +39 -42
- package/dist/plugins/async-hooks-stub.js.map +1 -1
- package/dist/plugins/client-reference-dedup.d.ts +7 -3
- package/dist/plugins/client-reference-dedup.js +63 -88
- package/dist/plugins/client-reference-dedup.js.map +1 -1
- package/dist/routing/app-router.d.ts +100 -96
- package/dist/routing/app-router.js +560 -670
- package/dist/routing/app-router.js.map +1 -1
- package/dist/routing/file-matcher.d.ts +18 -15
- package/dist/routing/file-matcher.js +65 -65
- package/dist/routing/file-matcher.js.map +1 -1
- package/dist/routing/pages-router.d.ts +23 -24
- package/dist/routing/pages-router.js +147 -172
- package/dist/routing/pages-router.js.map +1 -1
- package/dist/routing/route-trie.d.ts +23 -20
- package/dist/routing/route-trie.js +131 -151
- package/dist/routing/route-trie.js.map +1 -1
- package/dist/routing/route-validation.d.ts +5 -2
- package/dist/routing/route-validation.js +98 -130
- package/dist/routing/route-validation.js.map +1 -1
- package/dist/routing/utils.d.ts +10 -7
- package/dist/routing/utils.js +75 -111
- package/dist/routing/utils.js.map +1 -1
- package/dist/server/api-handler.d.ts +8 -13
- package/dist/server/api-handler.js +161 -193
- package/dist/server/api-handler.js.map +1 -1
- package/dist/server/app-router-entry.d.ts +6 -16
- package/dist/server/app-router-entry.js +26 -54
- package/dist/server/app-router-entry.js.map +1 -1
- package/dist/server/dev-module-runner.d.ts +11 -64
- package/dist/server/dev-module-runner.js +89 -101
- package/dist/server/dev-module-runner.js.map +1 -1
- package/dist/server/dev-origin-check.d.ts +12 -10
- package/dist/server/dev-origin-check.js +98 -108
- package/dist/server/dev-origin-check.js.map +1 -1
- package/dist/server/dev-server.d.ts +17 -14
- package/dist/server/dev-server.js +542 -869
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/html.d.ts +4 -1
- package/dist/server/html.js +25 -26
- package/dist/server/html.js.map +1 -1
- package/dist/server/image-optimization.d.ts +31 -28
- package/dist/server/image-optimization.js +181 -210
- package/dist/server/image-optimization.js.map +1 -1
- package/dist/server/instrumentation.d.ts +25 -22
- package/dist/server/instrumentation.js +110 -122
- package/dist/server/instrumentation.js.map +1 -1
- package/dist/server/isr-cache.d.ts +16 -26
- package/dist/server/isr-cache.js +106 -128
- package/dist/server/isr-cache.js.map +1 -1
- package/dist/server/metadata-routes.d.ts +85 -88
- package/dist/server/metadata-routes.js +270 -317
- package/dist/server/metadata-routes.js.map +1 -1
- package/dist/server/middleware-codegen.d.ts +7 -4
- package/dist/server/middleware-codegen.js +61 -61
- package/dist/server/middleware-codegen.js.map +1 -1
- package/dist/server/middleware-request-headers.d.ts +8 -6
- package/dist/server/middleware-request-headers.js +47 -65
- package/dist/server/middleware-request-headers.js.map +1 -1
- package/dist/server/middleware.d.ts +31 -47
- package/dist/server/middleware.js +273 -404
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/normalize-path.d.ts +4 -1
- package/dist/server/normalize-path.js +33 -47
- package/dist/server/normalize-path.js.map +1 -1
- package/dist/server/pages-i18n.d.ts +38 -30
- package/dist/server/pages-i18n.js +112 -139
- package/dist/server/pages-i18n.js.map +1 -1
- package/dist/server/prod-server.d.ts +19 -31
- package/dist/server/prod-server.js +714 -945
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/request-log.d.ts +18 -12
- package/dist/server/request-log.js +45 -52
- package/dist/server/request-log.js.map +1 -1
- package/dist/server/request-pipeline.d.ts +9 -17
- package/dist/server/request-pipeline.js +133 -184
- package/dist/server/request-pipeline.js.map +1 -1
- package/dist/server/worker-utils.d.ts +4 -1
- package/dist/server/worker-utils.js +31 -37
- package/dist/server/worker-utils.js.map +1 -1
- package/dist/shims/amp.d.ts +5 -2
- package/dist/shims/amp.js +19 -15
- package/dist/shims/amp.js.map +1 -1
- package/dist/shims/app.d.ts +8 -10
- package/dist/shims/app.js +0 -1
- package/dist/shims/cache-runtime.d.ts +20 -45
- package/dist/shims/cache-runtime.js +271 -422
- package/dist/shims/cache-runtime.js.map +1 -1
- package/dist/shims/cache.d.ts +130 -121
- package/dist/shims/cache.js +339 -427
- package/dist/shims/cache.js.map +1 -1
- package/dist/shims/client-only.d.ts +1 -18
- package/dist/shims/client-only.js +0 -17
- package/dist/shims/compat-router.d.ts +4 -1
- package/dist/shims/compat-router.js +23 -19
- package/dist/shims/compat-router.js.map +1 -1
- package/dist/shims/config.d.ts +7 -5
- package/dist/shims/config.js +16 -23
- package/dist/shims/config.js.map +1 -1
- package/dist/shims/constants.d.ts +119 -118
- package/dist/shims/constants.js +159 -164
- package/dist/shims/constants.js.map +1 -1
- package/dist/shims/document.d.ts +20 -16
- package/dist/shims/document.js +41 -22
- package/dist/shims/document.js.map +1 -1
- package/dist/shims/dynamic.d.ts +13 -22
- package/dist/shims/dynamic.js +122 -136
- package/dist/shims/dynamic.js.map +1 -1
- package/dist/shims/error-boundary.d.ts +22 -15
- package/dist/shims/error-boundary.js +81 -79
- package/dist/shims/error-boundary.js.map +1 -1
- package/dist/shims/error.d.ts +11 -12
- package/dist/shims/error.js +35 -39
- package/dist/shims/error.js.map +1 -1
- package/dist/shims/fetch-cache.d.ts +16 -14
- package/dist/shims/fetch-cache.js +437 -645
- package/dist/shims/fetch-cache.js.map +1 -1
- package/dist/shims/font-google-base.d.ts +28 -26
- package/dist/shims/font-google-base.js +238 -325
- package/dist/shims/font-google-base.js.map +1 -1
- package/dist/shims/font-google.d.ts +3 -3
- package/dist/shims/font-google.generated.d.ts +1928 -1924
- package/dist/shims/font-google.generated.js +1928 -2133
- package/dist/shims/font-google.generated.js.map +1 -1
- package/dist/shims/font-google.js +3 -3
- package/dist/shims/font-local.d.ts +28 -26
- package/dist/shims/font-local.js +204 -260
- package/dist/shims/font-local.js.map +1 -1
- package/dist/shims/form.d.ts +13 -27
- package/dist/shims/form.js +128 -180
- package/dist/shims/form.js.map +1 -1
- package/dist/shims/head-state.d.ts +8 -13
- package/dist/shims/head-state.js +25 -42
- package/dist/shims/head-state.js.map +1 -1
- package/dist/shims/head.d.ts +16 -20
- package/dist/shims/head.js +172 -250
- package/dist/shims/head.js.map +1 -1
- package/dist/shims/headers.d.ts +84 -78
- package/dist/shims/headers.js +447 -575
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/i18n-context.d.ts +16 -20
- package/dist/shims/i18n-context.js +35 -48
- package/dist/shims/i18n-context.js.map +1 -1
- package/dist/shims/i18n-state.d.ts +8 -14
- package/dist/shims/i18n-state.js +34 -42
- package/dist/shims/i18n-state.js.map +1 -1
- package/dist/shims/image-config.d.ts +11 -8
- package/dist/shims/image-config.js +50 -83
- package/dist/shims/image-config.js.map +1 -1
- package/dist/shims/image.d.ts +37 -46
- package/dist/shims/image.js +283 -308
- package/dist/shims/image.js.map +1 -1
- package/dist/shims/internal/api-utils.d.ts +7 -4
- package/dist/shims/internal/api-utils.js +0 -6
- package/dist/shims/internal/app-router-context.d.ts +22 -17
- package/dist/shims/internal/app-router-context.js +17 -13
- package/dist/shims/internal/app-router-context.js.map +1 -1
- package/dist/shims/internal/cookies.d.ts +2 -9
- package/dist/shims/internal/cookies.js +2 -9
- package/dist/shims/internal/parse-cookie-header.d.ts +4 -1
- package/dist/shims/internal/parse-cookie-header.js +29 -29
- package/dist/shims/internal/parse-cookie-header.js.map +1 -1
- package/dist/shims/internal/router-context.d.ts +6 -1
- package/dist/shims/internal/router-context.js +11 -7
- package/dist/shims/internal/router-context.js.map +1 -1
- package/dist/shims/internal/utils.d.ts +40 -37
- package/dist/shims/internal/utils.js +24 -30
- package/dist/shims/internal/utils.js.map +1 -1
- package/dist/shims/internal/work-unit-async-storage.d.ts +6 -10
- package/dist/shims/internal/work-unit-async-storage.js +14 -11
- package/dist/shims/internal/work-unit-async-storage.js.map +1 -1
- package/dist/shims/layout-segment-context.d.ts +11 -14
- package/dist/shims/layout-segment-context.js +24 -23
- package/dist/shims/layout-segment-context.js.map +1 -1
- package/dist/shims/legacy-image.d.ts +39 -46
- package/dist/shims/legacy-image.js +47 -42
- package/dist/shims/legacy-image.js.map +1 -1
- package/dist/shims/link.d.ts +32 -36
- package/dist/shims/link.js +255 -391
- package/dist/shims/link.js.map +1 -1
- package/dist/shims/metadata.d.ts +210 -202
- package/dist/shims/metadata.js +545 -546
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation-state.d.ts +10 -18
- package/dist/shims/navigation-state.js +66 -74
- package/dist/shims/navigation-state.js.map +1 -1
- package/dist/shims/navigation.d.ts +59 -63
- package/dist/shims/navigation.js +505 -704
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/og.d.ts +2 -20
- package/dist/shims/og.js +2 -19
- package/dist/shims/readonly-url-search-params.d.ts +8 -5
- package/dist/shims/readonly-url-search-params.js +26 -22
- package/dist/shims/readonly-url-search-params.js.map +1 -1
- package/dist/shims/request-context.d.ts +8 -5
- package/dist/shims/request-context.js +50 -60
- package/dist/shims/request-context.js.map +1 -1
- package/dist/shims/request-state-types.d.ts +11 -11
- package/dist/shims/request-state-types.js +0 -1
- package/dist/shims/router-state.d.ts +13 -10
- package/dist/shims/router-state.js +34 -43
- package/dist/shims/router-state.js.map +1 -1
- package/dist/shims/router.d.ts +81 -85
- package/dist/shims/router.js +506 -628
- package/dist/shims/router.js.map +1 -1
- package/dist/shims/script.d.ts +39 -48
- package/dist/shims/script.js +107 -160
- package/dist/shims/script.js.map +1 -1
- package/dist/shims/server-only.d.ts +1 -19
- package/dist/shims/server-only.js +0 -18
- package/dist/shims/server.d.ts +175 -164
- package/dist/shims/server.js +462 -478
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/unified-request-context.d.ts +20 -20
- package/dist/shims/unified-request-context.js +81 -99
- package/dist/shims/unified-request-context.js.map +1 -1
- package/dist/shims/url-safety.d.ts +4 -1
- package/dist/shims/url-safety.js +15 -11
- package/dist/shims/url-safety.js.map +1 -1
- package/dist/shims/url-utils.d.ts +8 -5
- package/dist/shims/url-utils.js +62 -93
- package/dist/shims/url-utils.js.map +1 -1
- package/dist/shims/web-vitals.d.ts +10 -8
- package/dist/shims/web-vitals.js +9 -15
- package/dist/shims/web-vitals.js.map +1 -1
- package/dist/utils/base-path.d.ts +5 -2
- package/dist/utils/base-path.js +21 -19
- package/dist/utils/base-path.js.map +1 -1
- package/dist/utils/domain-locale.d.ts +17 -9
- package/dist/utils/domain-locale.js +36 -56
- package/dist/utils/domain-locale.js.map +1 -1
- package/dist/utils/hash.d.ts +4 -1
- package/dist/utils/hash.js +19 -17
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/manifest-paths.d.ts +6 -3
- package/dist/utils/manifest-paths.js +15 -16
- package/dist/utils/manifest-paths.js.map +1 -1
- package/dist/utils/project.d.ts +13 -11
- package/dist/utils/project.js +169 -216
- package/dist/utils/project.js.map +1 -1
- package/dist/utils/query.d.ts +8 -6
- package/dist/utils/query.js +57 -67
- package/dist/utils/query.js.map +1 -1
- package/package.json +10 -9
- package/dist/build/report.d.ts.map +0 -1
- package/dist/build/static-export.d.ts.map +0 -1
- package/dist/check.d.ts.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/client/entry.d.ts.map +0 -1
- package/dist/client/validate-module-path.d.ts.map +0 -1
- package/dist/client/vinext-next-data.d.ts.map +0 -1
- package/dist/client/vinext-next-data.js.map +0 -1
- package/dist/cloudflare/index.d.ts.map +0 -1
- package/dist/cloudflare/index.js.map +0 -1
- package/dist/cloudflare/kv-cache-handler.d.ts.map +0 -1
- package/dist/cloudflare/tpr.d.ts.map +0 -1
- package/dist/config/config-matchers.d.ts.map +0 -1
- package/dist/config/dotenv.d.ts.map +0 -1
- package/dist/config/next-config.d.ts.map +0 -1
- package/dist/deploy.d.ts.map +0 -1
- package/dist/entries/app-browser-entry.d.ts.map +0 -1
- package/dist/entries/app-rsc-entry.d.ts.map +0 -1
- package/dist/entries/app-ssr-entry.d.ts.map +0 -1
- package/dist/entries/pages-client-entry.d.ts.map +0 -1
- package/dist/entries/pages-entry-helpers.d.ts.map +0 -1
- package/dist/entries/pages-server-entry.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/init.d.ts.map +0 -1
- package/dist/plugins/async-hooks-stub.d.ts.map +0 -1
- package/dist/plugins/client-reference-dedup.d.ts.map +0 -1
- package/dist/routing/app-router.d.ts.map +0 -1
- package/dist/routing/file-matcher.d.ts.map +0 -1
- package/dist/routing/pages-router.d.ts.map +0 -1
- package/dist/routing/route-trie.d.ts.map +0 -1
- package/dist/routing/route-validation.d.ts.map +0 -1
- package/dist/routing/utils.d.ts.map +0 -1
- package/dist/server/api-handler.d.ts.map +0 -1
- package/dist/server/app-router-entry.d.ts.map +0 -1
- package/dist/server/dev-module-runner.d.ts.map +0 -1
- package/dist/server/dev-origin-check.d.ts.map +0 -1
- package/dist/server/dev-server.d.ts.map +0 -1
- package/dist/server/html.d.ts.map +0 -1
- package/dist/server/image-optimization.d.ts.map +0 -1
- package/dist/server/instrumentation.d.ts.map +0 -1
- package/dist/server/isr-cache.d.ts.map +0 -1
- package/dist/server/metadata-routes.d.ts.map +0 -1
- package/dist/server/middleware-codegen.d.ts.map +0 -1
- package/dist/server/middleware-request-headers.d.ts.map +0 -1
- package/dist/server/middleware.d.ts.map +0 -1
- package/dist/server/normalize-path.d.ts.map +0 -1
- package/dist/server/pages-i18n.d.ts.map +0 -1
- package/dist/server/prod-server.d.ts.map +0 -1
- package/dist/server/request-log.d.ts.map +0 -1
- package/dist/server/request-pipeline.d.ts.map +0 -1
- package/dist/server/worker-utils.d.ts.map +0 -1
- package/dist/shims/amp.d.ts.map +0 -1
- package/dist/shims/app.d.ts.map +0 -1
- package/dist/shims/app.js.map +0 -1
- package/dist/shims/cache-runtime.d.ts.map +0 -1
- package/dist/shims/cache.d.ts.map +0 -1
- package/dist/shims/client-only.d.ts.map +0 -1
- package/dist/shims/client-only.js.map +0 -1
- package/dist/shims/compat-router.d.ts.map +0 -1
- package/dist/shims/config.d.ts.map +0 -1
- package/dist/shims/constants.d.ts.map +0 -1
- package/dist/shims/document.d.ts.map +0 -1
- package/dist/shims/dynamic.d.ts.map +0 -1
- package/dist/shims/error-boundary.d.ts.map +0 -1
- package/dist/shims/error.d.ts.map +0 -1
- package/dist/shims/fetch-cache.d.ts.map +0 -1
- package/dist/shims/font-google-base.d.ts.map +0 -1
- package/dist/shims/font-google.d.ts.map +0 -1
- package/dist/shims/font-google.generated.d.ts.map +0 -1
- package/dist/shims/font-google.js.map +0 -1
- package/dist/shims/font-local.d.ts.map +0 -1
- package/dist/shims/form.d.ts.map +0 -1
- package/dist/shims/head-state.d.ts.map +0 -1
- package/dist/shims/head.d.ts.map +0 -1
- package/dist/shims/headers.d.ts.map +0 -1
- package/dist/shims/i18n-context.d.ts.map +0 -1
- package/dist/shims/i18n-state.d.ts.map +0 -1
- package/dist/shims/image-config.d.ts.map +0 -1
- package/dist/shims/image.d.ts.map +0 -1
- package/dist/shims/internal/api-utils.d.ts.map +0 -1
- package/dist/shims/internal/api-utils.js.map +0 -1
- package/dist/shims/internal/app-router-context.d.ts.map +0 -1
- package/dist/shims/internal/cookies.d.ts.map +0 -1
- package/dist/shims/internal/cookies.js.map +0 -1
- package/dist/shims/internal/parse-cookie-header.d.ts.map +0 -1
- package/dist/shims/internal/router-context.d.ts.map +0 -1
- package/dist/shims/internal/utils.d.ts.map +0 -1
- package/dist/shims/internal/work-unit-async-storage.d.ts.map +0 -1
- package/dist/shims/layout-segment-context.d.ts.map +0 -1
- package/dist/shims/legacy-image.d.ts.map +0 -1
- package/dist/shims/link.d.ts.map +0 -1
- package/dist/shims/metadata.d.ts.map +0 -1
- package/dist/shims/navigation-state.d.ts.map +0 -1
- package/dist/shims/navigation.d.ts.map +0 -1
- package/dist/shims/og.d.ts.map +0 -1
- package/dist/shims/og.js.map +0 -1
- package/dist/shims/readonly-url-search-params.d.ts.map +0 -1
- package/dist/shims/request-context.d.ts.map +0 -1
- package/dist/shims/request-state-types.d.ts.map +0 -1
- package/dist/shims/request-state-types.js.map +0 -1
- package/dist/shims/router-state.d.ts.map +0 -1
- package/dist/shims/router.d.ts.map +0 -1
- package/dist/shims/script.d.ts.map +0 -1
- package/dist/shims/server-only.d.ts.map +0 -1
- package/dist/shims/server-only.js.map +0 -1
- package/dist/shims/server.d.ts.map +0 -1
- package/dist/shims/unified-request-context.d.ts.map +0 -1
- package/dist/shims/url-safety.d.ts.map +0 -1
- package/dist/shims/url-utils.d.ts.map +0 -1
- package/dist/shims/web-vitals.d.ts.map +0 -1
- package/dist/utils/base-path.d.ts.map +0 -1
- package/dist/utils/domain-locale.d.ts.map +0 -1
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/manifest-paths.d.ts.map +0 -1
- package/dist/utils/project.d.ts.map +0 -1
- package/dist/utils/query.d.ts.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,456 +1,391 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* vinext build Build for production
|
|
7
|
-
* vinext start Start production server
|
|
8
|
-
* vinext deploy Deploy to Cloudflare Workers
|
|
9
|
-
* vinext lint Run linter (delegates to eslint/oxlint)
|
|
10
|
-
*
|
|
11
|
-
* Automatically configures Vite with the vinext plugin — no vite.config.ts
|
|
12
|
-
* needed for most Next.js apps.
|
|
13
|
-
*/
|
|
14
|
-
import vinext, { clientOutputConfig, clientTreeshakeConfig } from "./index.js";
|
|
2
|
+
import { detectPackageManager, ensureViteConfigCompatibility } from "./utils/project.js";
|
|
3
|
+
import { formatReport, runCheck } from "./check.js";
|
|
4
|
+
import { loadNextConfig, resolveNextConfig } from "./config/next-config.js";
|
|
5
|
+
import { getReactUpgradeDeps, init } from "./init.js";
|
|
15
6
|
import { printBuildReport } from "./build/report.js";
|
|
16
|
-
import
|
|
7
|
+
import { runPrerender } from "./build/run-prerender.js";
|
|
8
|
+
import { loadDotenv } from "./config/dotenv.js";
|
|
9
|
+
import { deploy, parseDeployArgs } from "./deploy.js";
|
|
10
|
+
import vinext, { clientOutputConfig, clientTreeshakeConfig } from "./index.js";
|
|
11
|
+
import { createRequire } from "node:module";
|
|
17
12
|
import fs from "node:fs";
|
|
13
|
+
import path from "node:path";
|
|
18
14
|
import { pathToFileURL } from "node:url";
|
|
19
|
-
import { createRequire } from "node:module";
|
|
20
15
|
import { execFileSync } from "node:child_process";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
//#region src/cli.ts
|
|
17
|
+
/**
|
|
18
|
+
* vinext CLI — drop-in replacement for the `next` command
|
|
19
|
+
*
|
|
20
|
+
* vinext dev Start development server (Vite)
|
|
21
|
+
* vinext build Build for production
|
|
22
|
+
* vinext start Start production server
|
|
23
|
+
* vinext deploy Deploy to Cloudflare Workers
|
|
24
|
+
* vinext lint Run linter (delegates to eslint/oxlint)
|
|
25
|
+
*
|
|
26
|
+
* Automatically configures Vite with the vinext plugin — no vite.config.ts
|
|
27
|
+
* needed for most Next.js apps.
|
|
28
|
+
*/
|
|
26
29
|
let _viteModule = null;
|
|
27
30
|
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
* Dynamically load Vite from the project root. Falls back to the bundled
|
|
32
|
+
* copy if the project doesn't have its own Vite installation.
|
|
33
|
+
*/
|
|
31
34
|
async function loadVite() {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
vitePath = "vite";
|
|
44
|
-
}
|
|
45
|
-
// On Windows, absolute paths must be file:// URLs for ESM import().
|
|
46
|
-
// The fallback ("vite") is a bare specifier and works as-is.
|
|
47
|
-
const viteUrl = vitePath === "vite" ? vitePath : pathToFileURL(vitePath).href;
|
|
48
|
-
const vite = (await import(/* @vite-ignore */ viteUrl));
|
|
49
|
-
_viteModule = vite;
|
|
50
|
-
return vite;
|
|
35
|
+
if (_viteModule) return _viteModule;
|
|
36
|
+
const projectRoot = process.cwd();
|
|
37
|
+
let vitePath;
|
|
38
|
+
try {
|
|
39
|
+
vitePath = createRequire(path.join(projectRoot, "package.json")).resolve("vite");
|
|
40
|
+
} catch {
|
|
41
|
+
vitePath = "vite";
|
|
42
|
+
}
|
|
43
|
+
const vite = await (vitePath === "vite" ? import(vitePath) : import(pathToFileURL(vitePath).href));
|
|
44
|
+
_viteModule = vite;
|
|
45
|
+
return vite;
|
|
51
46
|
}
|
|
52
47
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
* Get the Vite version string. Returns "unknown" before loadVite() is called.
|
|
49
|
+
*/
|
|
55
50
|
function getViteVersion() {
|
|
56
|
-
|
|
51
|
+
return _viteModule?.version ?? "unknown";
|
|
57
52
|
}
|
|
58
|
-
const VERSION = JSON.parse(fs.readFileSync(new URL("../package.json", import.meta.url), "utf-8"))
|
|
59
|
-
.version;
|
|
60
|
-
// ─── CLI Argument Parsing ──────────────────────────────────────────────────────
|
|
53
|
+
const VERSION = JSON.parse(fs.readFileSync(new URL("../package.json", import.meta.url), "utf-8")).version;
|
|
61
54
|
const command = process.argv[2];
|
|
62
55
|
const rawArgs = process.argv.slice(3);
|
|
63
56
|
function parseArgs(args) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
else if (arg === "--port" || arg === "-p") {
|
|
80
|
-
result.port = parseInt(args[++i], 10);
|
|
81
|
-
}
|
|
82
|
-
else if (arg.startsWith("--port=")) {
|
|
83
|
-
result.port = parseInt(arg.split("=")[1], 10);
|
|
84
|
-
}
|
|
85
|
-
else if (arg === "--hostname" || arg === "-H") {
|
|
86
|
-
result.hostname = args[++i];
|
|
87
|
-
}
|
|
88
|
-
else if (arg.startsWith("--hostname=")) {
|
|
89
|
-
result.hostname = arg.split("=")[1];
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return result;
|
|
57
|
+
const result = {};
|
|
58
|
+
for (let i = 0; i < args.length; i++) {
|
|
59
|
+
const arg = args[i];
|
|
60
|
+
if (arg === "--help" || arg === "-h") result.help = true;
|
|
61
|
+
else if (arg === "--verbose") result.verbose = true;
|
|
62
|
+
else if (arg === "--turbopack") result.turbopack = true;
|
|
63
|
+
else if (arg === "--experimental-https") result.experimental = true;
|
|
64
|
+
else if (arg === "--prerender-all") result.prerenderAll = true;
|
|
65
|
+
else if (arg === "--port" || arg === "-p") result.port = parseInt(args[++i], 10);
|
|
66
|
+
else if (arg.startsWith("--port=")) result.port = parseInt(arg.split("=")[1], 10);
|
|
67
|
+
else if (arg === "--hostname" || arg === "-H") result.hostname = args[++i];
|
|
68
|
+
else if (arg.startsWith("--hostname=")) result.hostname = arg.split("=")[1];
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
93
71
|
}
|
|
94
|
-
// ─── Build logger ─────────────────────────────────────────────────────────────
|
|
95
72
|
/**
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
73
|
+
* Create a custom Vite logger for build output.
|
|
74
|
+
*
|
|
75
|
+
* By default Vite/Rollup emit a lot of build noise: version banners, progress
|
|
76
|
+
* lines, chunk size tables, minChunkSize diagnostics, and various internal
|
|
77
|
+
* warnings that are either not actionable or already handled by vinext at
|
|
78
|
+
* runtime. This logger suppresses all of that while keeping the things that
|
|
79
|
+
* actually matter:
|
|
80
|
+
*
|
|
81
|
+
* KEPT
|
|
82
|
+
* ✓ N modules transformed. — confirms the transform phase completed
|
|
83
|
+
* ✓ built in Xs — build timing (useful perf signal)
|
|
84
|
+
* Genuine warnings/errors — anything the user may need to act on
|
|
85
|
+
*
|
|
86
|
+
* SUPPRESSED (info)
|
|
87
|
+
* vite vX.Y.Z building... — Vite version banner
|
|
88
|
+
* transforming... / rendering chunks... / computing gzip size...
|
|
89
|
+
* Initially, there are N chunks... — Rollup minChunkSize diagnostics
|
|
90
|
+
* After merging chunks, there are...
|
|
91
|
+
* X are below minChunkSize.
|
|
92
|
+
* Blank lines
|
|
93
|
+
* Chunk/asset size table rows — e.g. " dist/client/assets/foo.js 42 kB"
|
|
94
|
+
* [rsc] / [ssr] / [client] / [worker] — RSC plugin env section headers
|
|
95
|
+
*
|
|
96
|
+
* SUPPRESSED (warn)
|
|
97
|
+
* "dynamic import will not move module into another chunk" — internal chunking note
|
|
98
|
+
* "X is not exported by virtual:vinext-*" — handled gracefully at runtime
|
|
99
|
+
*/
|
|
123
100
|
function createBuildLogger(vite) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return;
|
|
151
|
-
// Chunk/asset size table rows — e.g.:
|
|
152
|
-
// " dist/client/assets/foo.js 42.10 kB │ gzip: 6.74 kB" (TTY: indented)
|
|
153
|
-
// "dist/client/assets/foo.js 42.10 kB │ gzip: 6.74 kB" (non-TTY: at column 0)
|
|
154
|
-
// Both start with "dist/" (possibly preceded by whitespace).
|
|
155
|
-
if (/^\s*(dist\/|\.\/)/.test(plain))
|
|
156
|
-
return;
|
|
157
|
-
// @vitejs/plugin-rsc environment section headers ("[rsc]", "[ssr]", "[client]", "[worker]").
|
|
158
|
-
if (/^\s*\[(rsc|ssr|client|worker)\]/.test(plain))
|
|
159
|
-
return;
|
|
160
|
-
originalInfo(msg, options);
|
|
161
|
-
};
|
|
162
|
-
logger.warn = (msg, options) => {
|
|
163
|
-
const plain = strip(msg);
|
|
164
|
-
// Rollup: "dynamic import will not move module into another chunk" — this is
|
|
165
|
-
// emitted as a [plugin vite:reporter] warning with long absolute file paths.
|
|
166
|
-
// It's an internal chunking note, not actionable.
|
|
167
|
-
if (plain.includes("dynamic import will not move module into another chunk"))
|
|
168
|
-
return;
|
|
169
|
-
// Rollup: "X is not exported by Y" from virtual entry modules — these come from
|
|
170
|
-
// Rollup's static analysis of the generated virtual:vinext-server-entry when the
|
|
171
|
-
// user's middleware doesn't export the expected names. The vinext runtime handles
|
|
172
|
-
// missing exports gracefully, so this is noise.
|
|
173
|
-
if (plain.includes("is not exported by") && plain.includes("virtual:vinext"))
|
|
174
|
-
return;
|
|
175
|
-
originalWarn(msg, options);
|
|
176
|
-
};
|
|
177
|
-
return logger;
|
|
101
|
+
const logger = vite.createLogger("info", { allowClearScreen: false });
|
|
102
|
+
const originalInfo = logger.info.bind(logger);
|
|
103
|
+
const originalWarn = logger.warn.bind(logger);
|
|
104
|
+
const strip = (s) => s.replace(/\x1b\[[0-9;]*m/g, "");
|
|
105
|
+
logger.info = (msg, options) => {
|
|
106
|
+
const plain = strip(msg);
|
|
107
|
+
if (plain.trimStart().startsWith("✓")) {
|
|
108
|
+
originalInfo(msg, options);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (/^vite v\d/.test(plain.trim())) return;
|
|
112
|
+
if (/^(transforming|rendering chunks|computing gzip size)/.test(plain.trim())) return;
|
|
113
|
+
if (/^(Initially,|After merging|are below minChunkSize)/.test(plain.trim())) return;
|
|
114
|
+
if (/^\s*$/.test(plain)) return;
|
|
115
|
+
if (/^\s*(dist\/|\.\/)/.test(plain)) return;
|
|
116
|
+
// @vitejs/plugin-rsc environment section headers ("[rsc]", "[ssr]", "[client]", "[worker]").
|
|
117
|
+
if (/^\s*\[(rsc|ssr|client|worker)\]/.test(plain)) return;
|
|
118
|
+
originalInfo(msg, options);
|
|
119
|
+
};
|
|
120
|
+
logger.warn = (msg, options) => {
|
|
121
|
+
const plain = strip(msg);
|
|
122
|
+
if (plain.includes("dynamic import will not move module into another chunk")) return;
|
|
123
|
+
if (plain.includes("is not exported by") && plain.includes("virtual:vinext")) return;
|
|
124
|
+
originalWarn(msg, options);
|
|
125
|
+
};
|
|
126
|
+
return logger;
|
|
178
127
|
}
|
|
179
|
-
// ─── Auto-configuration ───────────────────────────────────────────────────────
|
|
180
128
|
function hasAppDir() {
|
|
181
|
-
|
|
182
|
-
|
|
129
|
+
return fs.existsSync(path.join(process.cwd(), "app")) || fs.existsSync(path.join(process.cwd(), "src", "app"));
|
|
130
|
+
}
|
|
131
|
+
function hasPagesDir() {
|
|
132
|
+
return fs.existsSync(path.join(process.cwd(), "pages")) || fs.existsSync(path.join(process.cwd(), "src", "pages"));
|
|
183
133
|
}
|
|
184
134
|
function hasViteConfig() {
|
|
185
|
-
|
|
186
|
-
fs.existsSync(path.join(process.cwd(), "vite.config.js")) ||
|
|
187
|
-
fs.existsSync(path.join(process.cwd(), "vite.config.mjs")));
|
|
135
|
+
return fs.existsSync(path.join(process.cwd(), "vite.config.ts")) || fs.existsSync(path.join(process.cwd(), "vite.config.js")) || fs.existsSync(path.join(process.cwd(), "vite.config.mjs"));
|
|
188
136
|
}
|
|
189
137
|
/**
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
138
|
+
* Build the Vite config automatically. If a vite.config.ts exists in the
|
|
139
|
+
* project, Vite will merge our config with it (theirs takes precedence).
|
|
140
|
+
* If there's no vite.config, this provides everything needed.
|
|
141
|
+
*/
|
|
194
142
|
function buildViteConfig(overrides = {}, logger) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
plugins: [vinext()],
|
|
214
|
-
// Deduplicate React packages to prevent "Invalid hook call" errors
|
|
215
|
-
// when vinext is symlinked (bun link / npm link) and both vinext's
|
|
216
|
-
// and the project's node_modules contain React.
|
|
217
|
-
resolve: {
|
|
218
|
-
dedupe: ["react", "react-dom", "react/jsx-runtime", "react/jsx-dev-runtime"],
|
|
219
|
-
},
|
|
220
|
-
...(logger ? { customLogger: logger } : {}),
|
|
221
|
-
...overrides,
|
|
222
|
-
};
|
|
223
|
-
return config;
|
|
143
|
+
if (hasViteConfig()) return {
|
|
144
|
+
root: process.cwd(),
|
|
145
|
+
...logger ? { customLogger: logger } : {},
|
|
146
|
+
...overrides
|
|
147
|
+
};
|
|
148
|
+
return {
|
|
149
|
+
root: process.cwd(),
|
|
150
|
+
configFile: false,
|
|
151
|
+
plugins: [vinext()],
|
|
152
|
+
resolve: { dedupe: [
|
|
153
|
+
"react",
|
|
154
|
+
"react-dom",
|
|
155
|
+
"react/jsx-runtime",
|
|
156
|
+
"react/jsx-dev-runtime"
|
|
157
|
+
] },
|
|
158
|
+
...logger ? { customLogger: logger } : {},
|
|
159
|
+
...overrides
|
|
160
|
+
};
|
|
224
161
|
}
|
|
225
162
|
/**
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
163
|
+
* Ensure the project's package.json has `"type": "module"` before Vite loads
|
|
164
|
+
* the vite.config.ts. This prevents the esbuild CJS-bundling path that Vite
|
|
165
|
+
* takes for projects without `"type": "module"`, which produces a `.mjs` temp
|
|
166
|
+
* file containing `require()` calls — calls that fail on Node 22 when
|
|
167
|
+
* targeting pure-ESM packages like `@cloudflare/vite-plugin`.
|
|
168
|
+
*
|
|
169
|
+
* This mirrors what `vinext init` does, but is applied lazily at dev/build
|
|
170
|
+
* time for projects that were set up before `vinext init` added the step, or
|
|
171
|
+
* that were migrated manually.
|
|
172
|
+
*/
|
|
236
173
|
function applyViteConfigCompatibility(root) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
console.warn(` [vinext] Renamed ${oldName} → ${newName} (required for "type": "module")`);
|
|
242
|
-
}
|
|
243
|
-
if (result.addedTypeModule) {
|
|
244
|
-
console.warn(` [vinext] Added "type": "module" to package.json (required for Vite ESM config loading).\n` +
|
|
245
|
-
` Run \`vinext init\` to review all project configuration.`);
|
|
246
|
-
}
|
|
174
|
+
const result = ensureViteConfigCompatibility(root);
|
|
175
|
+
if (!result) return;
|
|
176
|
+
for (const [oldName, newName] of result.renamed) console.warn(` [vinext] Renamed ${oldName} → ${newName} (required for "type": "module")`);
|
|
177
|
+
if (result.addedTypeModule) console.warn(" [vinext] Added \"type\": \"module\" to package.json (required for Vite ESM config loading).\n Run `vinext init` to review all project configuration.");
|
|
247
178
|
}
|
|
248
|
-
// ─── Commands ─────────────────────────────────────────────────────────────────
|
|
249
179
|
async function dev() {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
const server = await vite.createServer(config);
|
|
269
|
-
await server.listen();
|
|
270
|
-
server.printUrls();
|
|
180
|
+
const parsed = parseArgs(rawArgs);
|
|
181
|
+
if (parsed.help) return printHelp("dev");
|
|
182
|
+
loadDotenv({
|
|
183
|
+
root: process.cwd(),
|
|
184
|
+
mode: "development"
|
|
185
|
+
});
|
|
186
|
+
applyViteConfigCompatibility(process.cwd());
|
|
187
|
+
const vite = await loadVite();
|
|
188
|
+
const port = parsed.port ?? 3e3;
|
|
189
|
+
const host = parsed.hostname ?? "localhost";
|
|
190
|
+
console.log(`\n vinext dev (Vite ${getViteVersion()})\n`);
|
|
191
|
+
const config = buildViteConfig({ server: {
|
|
192
|
+
port,
|
|
193
|
+
host
|
|
194
|
+
} });
|
|
195
|
+
const server = await vite.createServer(config);
|
|
196
|
+
await server.listen();
|
|
197
|
+
server.printUrls();
|
|
271
198
|
}
|
|
272
199
|
async function buildApp() {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
200
|
+
const parsed = parseArgs(rawArgs);
|
|
201
|
+
if (parsed.help) return printHelp("build");
|
|
202
|
+
loadDotenv({
|
|
203
|
+
root: process.cwd(),
|
|
204
|
+
mode: "production"
|
|
205
|
+
});
|
|
206
|
+
applyViteConfigCompatibility(process.cwd());
|
|
207
|
+
const vite = await loadVite();
|
|
208
|
+
console.log(`\n vinext build (Vite ${getViteVersion()})\n`);
|
|
209
|
+
const isApp = hasAppDir();
|
|
210
|
+
const logger = parsed.verbose ? vite.createLogger("info", { allowClearScreen: false }) : createBuildLogger(vite);
|
|
211
|
+
if (isApp) {
|
|
212
|
+
const reactUpgrade = getReactUpgradeDeps(process.cwd());
|
|
213
|
+
if (reactUpgrade.length > 0) {
|
|
214
|
+
const [pm, ...pmArgs] = detectPackageManager(process.cwd()).replace(/ -D$/, "").split(" ");
|
|
215
|
+
console.log(" Upgrading React for RSC compatibility...");
|
|
216
|
+
execFileSync(pm, [...pmArgs, ...reactUpgrade], {
|
|
217
|
+
cwd: process.cwd(),
|
|
218
|
+
stdio: "inherit"
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (isApp) {
|
|
223
|
+
const config = buildViteConfig({}, logger);
|
|
224
|
+
await (await vite.createBuilder(config)).buildApp();
|
|
225
|
+
if (hasPagesDir()) {
|
|
226
|
+
console.log(" Building Pages Router server (hybrid)...");
|
|
227
|
+
const root = process.cwd();
|
|
228
|
+
let userTransformPlugins = [];
|
|
229
|
+
if (hasViteConfig()) {
|
|
230
|
+
const loaded = await vite.loadConfigFromFile({
|
|
231
|
+
command: "build",
|
|
232
|
+
mode: "production",
|
|
233
|
+
isSsrBuild: true
|
|
234
|
+
}, void 0, root);
|
|
235
|
+
if (loaded?.config.plugins) userTransformPlugins = loaded.config.plugins.flat(Infinity).filter((p) => !!p && typeof p.name === "string" && !p.name.startsWith("vinext:") && !p.name.startsWith("vite:react") && !p.name.startsWith("rsc:") && p.name !== "vite-rsc-load-module-dev-proxy" && p.name !== "vite-tsconfig-paths" && !p.name.startsWith("vite-plugin-cloudflare"));
|
|
236
|
+
}
|
|
237
|
+
await vite.build({
|
|
238
|
+
root,
|
|
239
|
+
configFile: false,
|
|
240
|
+
plugins: [...userTransformPlugins, vinext({ disableAppRouter: true })],
|
|
241
|
+
resolve: { dedupe: [
|
|
242
|
+
"react",
|
|
243
|
+
"react-dom",
|
|
244
|
+
"react/jsx-runtime",
|
|
245
|
+
"react/jsx-dev-runtime"
|
|
246
|
+
] },
|
|
247
|
+
...logger ? { customLogger: logger } : {},
|
|
248
|
+
build: {
|
|
249
|
+
outDir: "dist/server",
|
|
250
|
+
emptyOutDir: false,
|
|
251
|
+
ssr: "virtual:vinext-server-entry",
|
|
252
|
+
rollupOptions: { output: { entryFileNames: "entry.js" } }
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
} else {
|
|
257
|
+
console.log(" Building client...");
|
|
258
|
+
await vite.build(buildViteConfig({ build: {
|
|
259
|
+
outDir: "dist/client",
|
|
260
|
+
manifest: true,
|
|
261
|
+
ssrManifest: true,
|
|
262
|
+
rollupOptions: {
|
|
263
|
+
input: "virtual:vinext-client-entry",
|
|
264
|
+
output: clientOutputConfig,
|
|
265
|
+
treeshake: clientTreeshakeConfig
|
|
266
|
+
}
|
|
267
|
+
} }, logger));
|
|
268
|
+
console.log(" Building server...");
|
|
269
|
+
await vite.build(buildViteConfig({ build: {
|
|
270
|
+
outDir: "dist/server",
|
|
271
|
+
ssr: "virtual:vinext-server-entry",
|
|
272
|
+
rollupOptions: { output: { entryFileNames: "entry.js" } }
|
|
273
|
+
} }, logger));
|
|
274
|
+
}
|
|
275
|
+
let prerenderResult;
|
|
276
|
+
if (parsed.prerenderAll || (await resolveNextConfig(await loadNextConfig(process.cwd()), process.cwd())).output === "export") {
|
|
277
|
+
const label = parsed.prerenderAll ? "Pre-rendering all routes..." : "Pre-rendering all routes (output: 'export')...";
|
|
278
|
+
process.stdout.write("\x1B[0m");
|
|
279
|
+
console.log(` ${label}`);
|
|
280
|
+
prerenderResult = await runPrerender({ root: process.cwd() });
|
|
281
|
+
}
|
|
282
|
+
process.stdout.write("\x1B[0m");
|
|
283
|
+
await printBuildReport({
|
|
284
|
+
root: process.cwd(),
|
|
285
|
+
prerenderResult: prerenderResult ?? void 0
|
|
286
|
+
});
|
|
287
|
+
console.log("\n Build complete. Run `vinext start` to start the production server.\n");
|
|
288
|
+
process.exit(0);
|
|
341
289
|
}
|
|
342
290
|
async function start() {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
291
|
+
const parsed = parseArgs(rawArgs);
|
|
292
|
+
if (parsed.help) return printHelp("start");
|
|
293
|
+
loadDotenv({
|
|
294
|
+
root: process.cwd(),
|
|
295
|
+
mode: "production"
|
|
296
|
+
});
|
|
297
|
+
const port = parsed.port ?? parseInt(process.env.PORT ?? "3000", 10);
|
|
298
|
+
const host = parsed.hostname ?? "0.0.0.0";
|
|
299
|
+
console.log(`\n vinext start (port ${port})\n`);
|
|
300
|
+
const { startProdServer } = await import(
|
|
301
|
+
/* @vite-ignore */
|
|
302
|
+
"./server/prod-server.js"
|
|
303
|
+
);
|
|
304
|
+
await startProdServer({
|
|
305
|
+
port,
|
|
306
|
+
host,
|
|
307
|
+
outDir: path.resolve(process.cwd(), "dist")
|
|
308
|
+
});
|
|
359
309
|
}
|
|
360
310
|
async function lint() {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
" " +
|
|
395
|
-
detectPackageManager(process.cwd()) +
|
|
396
|
-
" oxlint\n");
|
|
397
|
-
process.exit(1);
|
|
398
|
-
}
|
|
399
|
-
console.log("\n Lint passed.\n");
|
|
400
|
-
}
|
|
401
|
-
catch {
|
|
402
|
-
process.exit(1);
|
|
403
|
-
}
|
|
311
|
+
if (parseArgs(rawArgs).help) return printHelp("lint");
|
|
312
|
+
console.log(`\n vinext lint\n`);
|
|
313
|
+
const cwd = process.cwd();
|
|
314
|
+
const hasOxlint = fs.existsSync(path.join(cwd, "node_modules", ".bin", "oxlint"));
|
|
315
|
+
const hasEslint = fs.existsSync(path.join(cwd, "node_modules", ".bin", "eslint"));
|
|
316
|
+
const hasNextLintConfig = fs.existsSync(path.join(cwd, ".eslintrc.json")) || fs.existsSync(path.join(cwd, ".eslintrc.js")) || fs.existsSync(path.join(cwd, ".eslintrc.cjs")) || fs.existsSync(path.join(cwd, "eslint.config.js")) || fs.existsSync(path.join(cwd, "eslint.config.mjs"));
|
|
317
|
+
try {
|
|
318
|
+
if (hasEslint && hasNextLintConfig) {
|
|
319
|
+
console.log(" Using eslint (with existing config)\n");
|
|
320
|
+
execFileSync("npx", ["eslint", "."], {
|
|
321
|
+
cwd,
|
|
322
|
+
stdio: "inherit"
|
|
323
|
+
});
|
|
324
|
+
} else if (hasOxlint) {
|
|
325
|
+
console.log(" Using oxlint\n");
|
|
326
|
+
execFileSync("npx", ["oxlint", "."], {
|
|
327
|
+
cwd,
|
|
328
|
+
stdio: "inherit"
|
|
329
|
+
});
|
|
330
|
+
} else if (hasEslint) {
|
|
331
|
+
console.log(" Using eslint\n");
|
|
332
|
+
execFileSync("npx", ["eslint", "."], {
|
|
333
|
+
cwd,
|
|
334
|
+
stdio: "inherit"
|
|
335
|
+
});
|
|
336
|
+
} else {
|
|
337
|
+
console.log(" No linter found. Install eslint or oxlint:\n\n " + detectPackageManager(process.cwd()) + " eslint eslint-config-next\n # or\n " + detectPackageManager(process.cwd()) + " oxlint\n");
|
|
338
|
+
process.exit(1);
|
|
339
|
+
}
|
|
340
|
+
console.log("\n Lint passed.\n");
|
|
341
|
+
} catch {
|
|
342
|
+
process.exit(1);
|
|
343
|
+
}
|
|
404
344
|
}
|
|
405
345
|
async function deployCommand() {
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
346
|
+
const parsed = parseDeployArgs(rawArgs);
|
|
347
|
+
if (parsed.help) return printHelp("deploy");
|
|
348
|
+
await loadVite();
|
|
349
|
+
console.log(`\n vinext deploy (Vite ${getViteVersion()})\n`);
|
|
350
|
+
await deploy({
|
|
351
|
+
root: process.cwd(),
|
|
352
|
+
preview: parsed.preview,
|
|
353
|
+
env: parsed.env,
|
|
354
|
+
skipBuild: parsed.skipBuild,
|
|
355
|
+
dryRun: parsed.dryRun,
|
|
356
|
+
name: parsed.name,
|
|
357
|
+
prerenderAll: parsed.prerenderAll,
|
|
358
|
+
experimentalTPR: parsed.experimentalTPR,
|
|
359
|
+
tprCoverage: parsed.tprCoverage,
|
|
360
|
+
tprLimit: parsed.tprLimit,
|
|
361
|
+
tprWindow: parsed.tprWindow
|
|
362
|
+
});
|
|
423
363
|
}
|
|
424
364
|
async function check() {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
const result = runCheck(root);
|
|
432
|
-
console.log(formatReport(result));
|
|
365
|
+
if (parseArgs(rawArgs).help) return printHelp("check");
|
|
366
|
+
const root = process.cwd();
|
|
367
|
+
console.log(`\n vinext check\n`);
|
|
368
|
+
console.log(" Scanning project...\n");
|
|
369
|
+
const result = runCheck(root);
|
|
370
|
+
console.log(formatReport(result));
|
|
433
371
|
}
|
|
434
372
|
async function initCommand() {
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
force,
|
|
448
|
-
});
|
|
373
|
+
const parsed = parseArgs(rawArgs);
|
|
374
|
+
if (parsed.help) return printHelp("init");
|
|
375
|
+
console.log(`\n vinext init\n`);
|
|
376
|
+
const port = parsed.port ?? 3001;
|
|
377
|
+
const skipCheck = rawArgs.includes("--skip-check");
|
|
378
|
+
const force = rawArgs.includes("--force");
|
|
379
|
+
await init({
|
|
380
|
+
root: process.cwd(),
|
|
381
|
+
port,
|
|
382
|
+
skipCheck,
|
|
383
|
+
force
|
|
384
|
+
});
|
|
449
385
|
}
|
|
450
|
-
// ─── Help ─────────────────────────────────────────────────────────────────────
|
|
451
386
|
function printHelp(cmd) {
|
|
452
|
-
|
|
453
|
-
|
|
387
|
+
if (cmd === "dev") {
|
|
388
|
+
console.log(`
|
|
454
389
|
vinext dev - Start development server
|
|
455
390
|
|
|
456
391
|
Usage: vinext dev [options]
|
|
@@ -461,10 +396,10 @@ function printHelp(cmd) {
|
|
|
461
396
|
--turbopack Accepted for compatibility (no-op, Vite is always used)
|
|
462
397
|
-h, --help Show this help
|
|
463
398
|
`);
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
if (cmd === "build") {
|
|
402
|
+
console.log(`
|
|
468
403
|
vinext build - Build for production
|
|
469
404
|
|
|
470
405
|
Usage: vinext build [options]
|
|
@@ -473,13 +408,15 @@ function printHelp(cmd) {
|
|
|
473
408
|
runs the appropriate multi-environment build via Vite.
|
|
474
409
|
|
|
475
410
|
Options:
|
|
476
|
-
--verbose
|
|
477
|
-
-
|
|
411
|
+
--verbose Show full Vite/Rollup build output (suppressed by default)
|
|
412
|
+
--prerender-all Pre-render discovered routes after building (future releases
|
|
413
|
+
will serve these files in vinext start)
|
|
414
|
+
-h, --help Show this help
|
|
478
415
|
`);
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
if (cmd === "start") {
|
|
419
|
+
console.log(`
|
|
483
420
|
vinext start - Start production server
|
|
484
421
|
|
|
485
422
|
Usage: vinext start [options]
|
|
@@ -492,10 +429,10 @@ function printHelp(cmd) {
|
|
|
492
429
|
-H, --hostname <host> Hostname to bind to (default: 0.0.0.0)
|
|
493
430
|
-h, --help Show this help
|
|
494
431
|
`);
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
if (cmd === "deploy") {
|
|
435
|
+
console.log(`
|
|
499
436
|
vinext deploy - Deploy to Cloudflare Workers
|
|
500
437
|
|
|
501
438
|
Usage: vinext deploy [options]
|
|
@@ -513,6 +450,8 @@ function printHelp(cmd) {
|
|
|
513
450
|
--name <name> Custom Worker name (default: from package.json)
|
|
514
451
|
--skip-build Skip the build step (use existing dist/)
|
|
515
452
|
--dry-run Generate config files without building or deploying
|
|
453
|
+
--prerender-all Pre-render discovered routes after building (future
|
|
454
|
+
releases will auto-populate the remote cache)
|
|
516
455
|
-h, --help Show this help
|
|
517
456
|
|
|
518
457
|
Experimental:
|
|
@@ -537,10 +476,10 @@ function printHelp(cmd) {
|
|
|
537
476
|
vinext deploy --experimental-tpr --tpr-coverage 95 Cover 95% of traffic
|
|
538
477
|
vinext deploy --experimental-tpr --tpr-limit 500 Cap at 500 pages
|
|
539
478
|
`);
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
481
|
+
if (cmd === "check") {
|
|
482
|
+
console.log(`
|
|
544
483
|
vinext check - Scan Next.js app for compatibility
|
|
545
484
|
|
|
546
485
|
Usage: vinext check [options]
|
|
@@ -552,10 +491,10 @@ function printHelp(cmd) {
|
|
|
552
491
|
Options:
|
|
553
492
|
-h, --help Show this help
|
|
554
493
|
`);
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
if (cmd === "init") {
|
|
497
|
+
console.log(`
|
|
559
498
|
vinext init - Migrate a Next.js project to run under vinext
|
|
560
499
|
|
|
561
500
|
Usage: vinext init [options]
|
|
@@ -576,10 +515,10 @@ function printHelp(cmd) {
|
|
|
576
515
|
vinext init --force Overwrite existing vite.config.ts
|
|
577
516
|
vinext init --skip-check Skip the compatibility report
|
|
578
517
|
`);
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
520
|
+
if (cmd === "lint") {
|
|
521
|
+
console.log(`
|
|
583
522
|
vinext lint - Run linter
|
|
584
523
|
|
|
585
524
|
Usage: vinext lint [options]
|
|
@@ -590,9 +529,9 @@ function printHelp(cmd) {
|
|
|
590
529
|
Options:
|
|
591
530
|
-h, --help Show this help
|
|
592
531
|
`);
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
console.log(`
|
|
596
535
|
vinext v${VERSION} - Run Next.js apps on Vite
|
|
597
536
|
|
|
598
537
|
Usage: vinext <command> [options]
|
|
@@ -624,63 +563,63 @@ function printHelp(cmd) {
|
|
|
624
563
|
No vite.config.ts needed — just run \`vinext dev\` in your Next.js project.
|
|
625
564
|
`);
|
|
626
565
|
}
|
|
627
|
-
// ─── Entry ────────────────────────────────────────────────────────────────────
|
|
628
566
|
if (command === "--version" || command === "-v") {
|
|
629
|
-
|
|
630
|
-
|
|
567
|
+
console.log(`vinext v${VERSION}`);
|
|
568
|
+
process.exit(0);
|
|
631
569
|
}
|
|
632
570
|
if (command === "--help" || command === "-h" || !command) {
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
process.exit(0);
|
|
636
|
-
process.exit(0);
|
|
571
|
+
printHelp();
|
|
572
|
+
process.exit(0);
|
|
637
573
|
}
|
|
638
574
|
switch (command) {
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
575
|
+
case "dev":
|
|
576
|
+
dev().catch((e) => {
|
|
577
|
+
console.error(e);
|
|
578
|
+
process.exit(1);
|
|
579
|
+
});
|
|
580
|
+
break;
|
|
581
|
+
case "build":
|
|
582
|
+
buildApp().catch((e) => {
|
|
583
|
+
console.error(e);
|
|
584
|
+
process.exit(1);
|
|
585
|
+
});
|
|
586
|
+
break;
|
|
587
|
+
case "start":
|
|
588
|
+
start().catch((e) => {
|
|
589
|
+
console.error(e);
|
|
590
|
+
process.exit(1);
|
|
591
|
+
});
|
|
592
|
+
break;
|
|
593
|
+
case "deploy":
|
|
594
|
+
deployCommand().catch((e) => {
|
|
595
|
+
console.error(e);
|
|
596
|
+
process.exit(1);
|
|
597
|
+
});
|
|
598
|
+
break;
|
|
599
|
+
case "init":
|
|
600
|
+
initCommand().catch((e) => {
|
|
601
|
+
console.error(e);
|
|
602
|
+
process.exit(1);
|
|
603
|
+
});
|
|
604
|
+
break;
|
|
605
|
+
case "check":
|
|
606
|
+
check().catch((e) => {
|
|
607
|
+
console.error(e);
|
|
608
|
+
process.exit(1);
|
|
609
|
+
});
|
|
610
|
+
break;
|
|
611
|
+
case "lint":
|
|
612
|
+
lint().catch((e) => {
|
|
613
|
+
console.error(e);
|
|
614
|
+
process.exit(1);
|
|
615
|
+
});
|
|
616
|
+
break;
|
|
617
|
+
default:
|
|
618
|
+
console.error(`\n Unknown command: ${command}\n`);
|
|
619
|
+
printHelp();
|
|
620
|
+
process.exit(1);
|
|
685
621
|
}
|
|
622
|
+
//#endregion
|
|
623
|
+
export {};
|
|
624
|
+
|
|
686
625
|
//# sourceMappingURL=cli.js.map
|