vinext 0.0.30 → 0.0.32
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 +15 -7
- 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 +581 -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 +681 -571
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts +1 -15
- package/dist/cli.js +432 -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 +376 -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 +444 -212
- 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 +86 -114
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/index.d.ts +92 -60
- package/dist/index.js +2151 -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 +160 -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 +19 -15
- package/dist/server/dev-server.js +543 -871
- 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 +34 -59
- package/dist/server/instrumentation.js +112 -125
- 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 +32 -47
- package/dist/server/middleware.js +261 -409
- 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 +715 -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 +6 -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 +439 -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 +17 -20
- package/dist/shims/head.js +194 -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 +7 -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 +213 -164
- package/dist/shims/server.js +545 -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,393 @@
|
|
|
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
|
+
const nextConfig = await resolveNextConfig(await loadNextConfig(process.cwd()), process.cwd());
|
|
276
|
+
let prerenderResult;
|
|
277
|
+
if (parsed.prerenderAll || nextConfig.output === "export") {
|
|
278
|
+
const label = parsed.prerenderAll ? "Pre-rendering all routes..." : "Pre-rendering all routes (output: 'export')...";
|
|
279
|
+
process.stdout.write("\x1B[0m");
|
|
280
|
+
console.log(` ${label}`);
|
|
281
|
+
prerenderResult = await runPrerender({ root: process.cwd() });
|
|
282
|
+
}
|
|
283
|
+
process.stdout.write("\x1B[0m");
|
|
284
|
+
await printBuildReport({
|
|
285
|
+
root: process.cwd(),
|
|
286
|
+
pageExtensions: nextConfig.pageExtensions,
|
|
287
|
+
prerenderResult: prerenderResult ?? void 0
|
|
288
|
+
});
|
|
289
|
+
console.log("\n Build complete. Run `vinext start` to start the production server.\n");
|
|
290
|
+
process.exit(0);
|
|
341
291
|
}
|
|
342
292
|
async function start() {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
293
|
+
const parsed = parseArgs(rawArgs);
|
|
294
|
+
if (parsed.help) return printHelp("start");
|
|
295
|
+
loadDotenv({
|
|
296
|
+
root: process.cwd(),
|
|
297
|
+
mode: "production"
|
|
298
|
+
});
|
|
299
|
+
const port = parsed.port ?? parseInt(process.env.PORT ?? "3000", 10);
|
|
300
|
+
const host = parsed.hostname ?? "0.0.0.0";
|
|
301
|
+
console.log(`\n vinext start (port ${port})\n`);
|
|
302
|
+
const { startProdServer } = await import(
|
|
303
|
+
/* @vite-ignore */
|
|
304
|
+
"./server/prod-server.js"
|
|
305
|
+
);
|
|
306
|
+
await startProdServer({
|
|
307
|
+
port,
|
|
308
|
+
host,
|
|
309
|
+
outDir: path.resolve(process.cwd(), "dist")
|
|
310
|
+
});
|
|
359
311
|
}
|
|
360
312
|
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
|
-
}
|
|
313
|
+
if (parseArgs(rawArgs).help) return printHelp("lint");
|
|
314
|
+
console.log(`\n vinext lint\n`);
|
|
315
|
+
const cwd = process.cwd();
|
|
316
|
+
const hasOxlint = fs.existsSync(path.join(cwd, "node_modules", ".bin", "oxlint"));
|
|
317
|
+
const hasEslint = fs.existsSync(path.join(cwd, "node_modules", ".bin", "eslint"));
|
|
318
|
+
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"));
|
|
319
|
+
try {
|
|
320
|
+
if (hasEslint && hasNextLintConfig) {
|
|
321
|
+
console.log(" Using eslint (with existing config)\n");
|
|
322
|
+
execFileSync("npx", ["eslint", "."], {
|
|
323
|
+
cwd,
|
|
324
|
+
stdio: "inherit"
|
|
325
|
+
});
|
|
326
|
+
} else if (hasOxlint) {
|
|
327
|
+
console.log(" Using oxlint\n");
|
|
328
|
+
execFileSync("npx", ["oxlint", "."], {
|
|
329
|
+
cwd,
|
|
330
|
+
stdio: "inherit"
|
|
331
|
+
});
|
|
332
|
+
} else if (hasEslint) {
|
|
333
|
+
console.log(" Using eslint\n");
|
|
334
|
+
execFileSync("npx", ["eslint", "."], {
|
|
335
|
+
cwd,
|
|
336
|
+
stdio: "inherit"
|
|
337
|
+
});
|
|
338
|
+
} else {
|
|
339
|
+
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");
|
|
340
|
+
process.exit(1);
|
|
341
|
+
}
|
|
342
|
+
console.log("\n Lint passed.\n");
|
|
343
|
+
} catch {
|
|
344
|
+
process.exit(1);
|
|
345
|
+
}
|
|
404
346
|
}
|
|
405
347
|
async function deployCommand() {
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
348
|
+
const parsed = parseDeployArgs(rawArgs);
|
|
349
|
+
if (parsed.help) return printHelp("deploy");
|
|
350
|
+
await loadVite();
|
|
351
|
+
console.log(`\n vinext deploy (Vite ${getViteVersion()})\n`);
|
|
352
|
+
await deploy({
|
|
353
|
+
root: process.cwd(),
|
|
354
|
+
preview: parsed.preview,
|
|
355
|
+
env: parsed.env,
|
|
356
|
+
skipBuild: parsed.skipBuild,
|
|
357
|
+
dryRun: parsed.dryRun,
|
|
358
|
+
name: parsed.name,
|
|
359
|
+
prerenderAll: parsed.prerenderAll,
|
|
360
|
+
experimentalTPR: parsed.experimentalTPR,
|
|
361
|
+
tprCoverage: parsed.tprCoverage,
|
|
362
|
+
tprLimit: parsed.tprLimit,
|
|
363
|
+
tprWindow: parsed.tprWindow
|
|
364
|
+
});
|
|
423
365
|
}
|
|
424
366
|
async function check() {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
const result = runCheck(root);
|
|
432
|
-
console.log(formatReport(result));
|
|
367
|
+
if (parseArgs(rawArgs).help) return printHelp("check");
|
|
368
|
+
const root = process.cwd();
|
|
369
|
+
console.log(`\n vinext check\n`);
|
|
370
|
+
console.log(" Scanning project...\n");
|
|
371
|
+
const result = runCheck(root);
|
|
372
|
+
console.log(formatReport(result));
|
|
433
373
|
}
|
|
434
374
|
async function initCommand() {
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
force,
|
|
448
|
-
});
|
|
375
|
+
const parsed = parseArgs(rawArgs);
|
|
376
|
+
if (parsed.help) return printHelp("init");
|
|
377
|
+
console.log(`\n vinext init\n`);
|
|
378
|
+
const port = parsed.port ?? 3001;
|
|
379
|
+
const skipCheck = rawArgs.includes("--skip-check");
|
|
380
|
+
const force = rawArgs.includes("--force");
|
|
381
|
+
await init({
|
|
382
|
+
root: process.cwd(),
|
|
383
|
+
port,
|
|
384
|
+
skipCheck,
|
|
385
|
+
force
|
|
386
|
+
});
|
|
449
387
|
}
|
|
450
|
-
// ─── Help ─────────────────────────────────────────────────────────────────────
|
|
451
388
|
function printHelp(cmd) {
|
|
452
|
-
|
|
453
|
-
|
|
389
|
+
if (cmd === "dev") {
|
|
390
|
+
console.log(`
|
|
454
391
|
vinext dev - Start development server
|
|
455
392
|
|
|
456
393
|
Usage: vinext dev [options]
|
|
@@ -461,10 +398,10 @@ function printHelp(cmd) {
|
|
|
461
398
|
--turbopack Accepted for compatibility (no-op, Vite is always used)
|
|
462
399
|
-h, --help Show this help
|
|
463
400
|
`);
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
if (cmd === "build") {
|
|
404
|
+
console.log(`
|
|
468
405
|
vinext build - Build for production
|
|
469
406
|
|
|
470
407
|
Usage: vinext build [options]
|
|
@@ -473,13 +410,15 @@ function printHelp(cmd) {
|
|
|
473
410
|
runs the appropriate multi-environment build via Vite.
|
|
474
411
|
|
|
475
412
|
Options:
|
|
476
|
-
--verbose
|
|
477
|
-
-
|
|
413
|
+
--verbose Show full Vite/Rollup build output (suppressed by default)
|
|
414
|
+
--prerender-all Pre-render discovered routes after building (future releases
|
|
415
|
+
will serve these files in vinext start)
|
|
416
|
+
-h, --help Show this help
|
|
478
417
|
`);
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
if (cmd === "start") {
|
|
421
|
+
console.log(`
|
|
483
422
|
vinext start - Start production server
|
|
484
423
|
|
|
485
424
|
Usage: vinext start [options]
|
|
@@ -492,10 +431,10 @@ function printHelp(cmd) {
|
|
|
492
431
|
-H, --hostname <host> Hostname to bind to (default: 0.0.0.0)
|
|
493
432
|
-h, --help Show this help
|
|
494
433
|
`);
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
if (cmd === "deploy") {
|
|
437
|
+
console.log(`
|
|
499
438
|
vinext deploy - Deploy to Cloudflare Workers
|
|
500
439
|
|
|
501
440
|
Usage: vinext deploy [options]
|
|
@@ -513,6 +452,8 @@ function printHelp(cmd) {
|
|
|
513
452
|
--name <name> Custom Worker name (default: from package.json)
|
|
514
453
|
--skip-build Skip the build step (use existing dist/)
|
|
515
454
|
--dry-run Generate config files without building or deploying
|
|
455
|
+
--prerender-all Pre-render discovered routes after building (future
|
|
456
|
+
releases will auto-populate the remote cache)
|
|
516
457
|
-h, --help Show this help
|
|
517
458
|
|
|
518
459
|
Experimental:
|
|
@@ -537,10 +478,10 @@ function printHelp(cmd) {
|
|
|
537
478
|
vinext deploy --experimental-tpr --tpr-coverage 95 Cover 95% of traffic
|
|
538
479
|
vinext deploy --experimental-tpr --tpr-limit 500 Cap at 500 pages
|
|
539
480
|
`);
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
if (cmd === "check") {
|
|
484
|
+
console.log(`
|
|
544
485
|
vinext check - Scan Next.js app for compatibility
|
|
545
486
|
|
|
546
487
|
Usage: vinext check [options]
|
|
@@ -552,10 +493,10 @@ function printHelp(cmd) {
|
|
|
552
493
|
Options:
|
|
553
494
|
-h, --help Show this help
|
|
554
495
|
`);
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
if (cmd === "init") {
|
|
499
|
+
console.log(`
|
|
559
500
|
vinext init - Migrate a Next.js project to run under vinext
|
|
560
501
|
|
|
561
502
|
Usage: vinext init [options]
|
|
@@ -576,10 +517,10 @@ function printHelp(cmd) {
|
|
|
576
517
|
vinext init --force Overwrite existing vite.config.ts
|
|
577
518
|
vinext init --skip-check Skip the compatibility report
|
|
578
519
|
`);
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
if (cmd === "lint") {
|
|
523
|
+
console.log(`
|
|
583
524
|
vinext lint - Run linter
|
|
584
525
|
|
|
585
526
|
Usage: vinext lint [options]
|
|
@@ -590,9 +531,9 @@ function printHelp(cmd) {
|
|
|
590
531
|
Options:
|
|
591
532
|
-h, --help Show this help
|
|
592
533
|
`);
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
console.log(`
|
|
596
537
|
vinext v${VERSION} - Run Next.js apps on Vite
|
|
597
538
|
|
|
598
539
|
Usage: vinext <command> [options]
|
|
@@ -624,63 +565,63 @@ function printHelp(cmd) {
|
|
|
624
565
|
No vite.config.ts needed — just run \`vinext dev\` in your Next.js project.
|
|
625
566
|
`);
|
|
626
567
|
}
|
|
627
|
-
// ─── Entry ────────────────────────────────────────────────────────────────────
|
|
628
568
|
if (command === "--version" || command === "-v") {
|
|
629
|
-
|
|
630
|
-
|
|
569
|
+
console.log(`vinext v${VERSION}`);
|
|
570
|
+
process.exit(0);
|
|
631
571
|
}
|
|
632
572
|
if (command === "--help" || command === "-h" || !command) {
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
process.exit(0);
|
|
636
|
-
process.exit(0);
|
|
573
|
+
printHelp();
|
|
574
|
+
process.exit(0);
|
|
637
575
|
}
|
|
638
576
|
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
|
-
|
|
577
|
+
case "dev":
|
|
578
|
+
dev().catch((e) => {
|
|
579
|
+
console.error(e);
|
|
580
|
+
process.exit(1);
|
|
581
|
+
});
|
|
582
|
+
break;
|
|
583
|
+
case "build":
|
|
584
|
+
buildApp().catch((e) => {
|
|
585
|
+
console.error(e);
|
|
586
|
+
process.exit(1);
|
|
587
|
+
});
|
|
588
|
+
break;
|
|
589
|
+
case "start":
|
|
590
|
+
start().catch((e) => {
|
|
591
|
+
console.error(e);
|
|
592
|
+
process.exit(1);
|
|
593
|
+
});
|
|
594
|
+
break;
|
|
595
|
+
case "deploy":
|
|
596
|
+
deployCommand().catch((e) => {
|
|
597
|
+
console.error(e);
|
|
598
|
+
process.exit(1);
|
|
599
|
+
});
|
|
600
|
+
break;
|
|
601
|
+
case "init":
|
|
602
|
+
initCommand().catch((e) => {
|
|
603
|
+
console.error(e);
|
|
604
|
+
process.exit(1);
|
|
605
|
+
});
|
|
606
|
+
break;
|
|
607
|
+
case "check":
|
|
608
|
+
check().catch((e) => {
|
|
609
|
+
console.error(e);
|
|
610
|
+
process.exit(1);
|
|
611
|
+
});
|
|
612
|
+
break;
|
|
613
|
+
case "lint":
|
|
614
|
+
lint().catch((e) => {
|
|
615
|
+
console.error(e);
|
|
616
|
+
process.exit(1);
|
|
617
|
+
});
|
|
618
|
+
break;
|
|
619
|
+
default:
|
|
620
|
+
console.error(`\n Unknown command: ${command}\n`);
|
|
621
|
+
printHelp();
|
|
622
|
+
process.exit(1);
|
|
685
623
|
}
|
|
624
|
+
//#endregion
|
|
625
|
+
export {};
|
|
626
|
+
|
|
686
627
|
//# sourceMappingURL=cli.js.map
|