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
|
@@ -1,513 +1,423 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Loads the Next.js config file (if present) and extracts supported options.
|
|
5
|
-
* Unsupported options are logged as warnings.
|
|
6
|
-
*/
|
|
7
|
-
import path from "node:path";
|
|
1
|
+
import { normalizePageExtensions } from "../routing/file-matcher.js";
|
|
2
|
+
import { isExternalUrl } from "./config-matchers.js";
|
|
3
|
+
import { PHASE_DEVELOPMENT_SERVER } from "../shims/constants.js";
|
|
8
4
|
import { createRequire } from "node:module";
|
|
9
5
|
import fs from "node:fs";
|
|
6
|
+
import path from "node:path";
|
|
10
7
|
import { randomUUID } from "node:crypto";
|
|
11
|
-
|
|
12
|
-
import { normalizePageExtensions } from "../routing/file-matcher.js";
|
|
13
|
-
import { isExternalUrl } from "./config-matchers.js";
|
|
8
|
+
//#region src/config/next-config.ts
|
|
14
9
|
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
10
|
+
* next.config.js / next.config.mjs / next.config.ts parser
|
|
11
|
+
*
|
|
12
|
+
* Loads the Next.js config file (if present) and extracts supported options.
|
|
13
|
+
* Unsupported options are logged as warnings.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Parse a body size limit value (string or number) into bytes.
|
|
17
|
+
* Accepts Next.js-style strings like "1mb", "500kb", "10mb", bare number strings like "1048576" (bytes),
|
|
18
|
+
* and numeric values. Supports b, kb, mb, gb, tb, pb units.
|
|
19
|
+
* Returns the default 1MB if the value is not provided or invalid.
|
|
20
|
+
* Throws if the parsed value is less than 1.
|
|
21
|
+
*/
|
|
22
|
+
function parseBodySizeLimit(value) {
|
|
23
|
+
if (value === void 0 || value === null) return 1 * 1024 * 1024;
|
|
24
|
+
if (typeof value === "number") {
|
|
25
|
+
if (value < 1) throw new Error(`Body size limit must be a positive number, got ${value}`);
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
const match = value.trim().match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb|tb|pb)?$/i);
|
|
29
|
+
if (!match) {
|
|
30
|
+
console.warn(`[vinext] Invalid bodySizeLimit value: "${value}". Expected a number or a string like "1mb", "500kb". Falling back to 1MB.`);
|
|
31
|
+
return 1 * 1024 * 1024;
|
|
32
|
+
}
|
|
33
|
+
const num = parseFloat(match[1]);
|
|
34
|
+
const unit = (match[2] ?? "b").toLowerCase();
|
|
35
|
+
let bytes;
|
|
36
|
+
switch (unit) {
|
|
37
|
+
case "b":
|
|
38
|
+
bytes = Math.floor(num);
|
|
39
|
+
break;
|
|
40
|
+
case "kb":
|
|
41
|
+
bytes = Math.floor(num * 1024);
|
|
42
|
+
break;
|
|
43
|
+
case "mb":
|
|
44
|
+
bytes = Math.floor(num * 1024 * 1024);
|
|
45
|
+
break;
|
|
46
|
+
case "gb":
|
|
47
|
+
bytes = Math.floor(num * 1024 * 1024 * 1024);
|
|
48
|
+
break;
|
|
49
|
+
case "tb":
|
|
50
|
+
bytes = Math.floor(num * 1024 * 1024 * 1024 * 1024);
|
|
51
|
+
break;
|
|
52
|
+
case "pb":
|
|
53
|
+
bytes = Math.floor(num * 1024 * 1024 * 1024 * 1024 * 1024);
|
|
54
|
+
break;
|
|
55
|
+
default: return 1 * 1024 * 1024;
|
|
56
|
+
}
|
|
57
|
+
if (bytes < 1) throw new Error(`Body size limit must be a positive number, got ${bytes}`);
|
|
58
|
+
return bytes;
|
|
63
59
|
}
|
|
64
|
-
const CONFIG_FILES = [
|
|
60
|
+
const CONFIG_FILES = [
|
|
61
|
+
"next.config.ts",
|
|
62
|
+
"next.config.mjs",
|
|
63
|
+
"next.config.js",
|
|
64
|
+
"next.config.cjs"
|
|
65
|
+
];
|
|
65
66
|
/**
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
* Check whether an error indicates a CJS module was loaded in an ESM context
|
|
68
|
+
* (i.e. the file uses `require()` which is not available in ESM).
|
|
69
|
+
*/
|
|
69
70
|
function isCjsError(e) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return (msg.includes("require is not a function") ||
|
|
74
|
-
msg.includes("require is not defined") ||
|
|
75
|
-
msg.includes("exports is not defined") ||
|
|
76
|
-
msg.includes("module is not defined") ||
|
|
77
|
-
msg.includes("__dirname is not defined") ||
|
|
78
|
-
msg.includes("__filename is not defined"));
|
|
71
|
+
if (!(e instanceof Error)) return false;
|
|
72
|
+
const msg = e.message;
|
|
73
|
+
return msg.includes("require is not a function") || msg.includes("require is not defined") || msg.includes("exports is not defined") || msg.includes("module is not defined") || msg.includes("__dirname is not defined") || msg.includes("__filename is not defined");
|
|
79
74
|
}
|
|
80
75
|
/**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
76
|
+
* Emit a warning when config loading fails, with a targeted hint for
|
|
77
|
+
* known plugin wrappers that are unnecessary in vinext.
|
|
78
|
+
*/
|
|
84
79
|
function warnConfigLoadFailure(filename, err) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
console.warn(`[vinext] Failed to load ${filename}: ${msg}`);
|
|
91
|
-
if (isNextIntlPlugin) {
|
|
92
|
-
console.warn("[vinext] Hint: createNextIntlPlugin() is not needed with vinext. " +
|
|
93
|
-
"Remove the next-intl/plugin wrapper from your next.config — " +
|
|
94
|
-
"vinext auto-detects next-intl and registers the i18n config alias automatically.");
|
|
95
|
-
}
|
|
80
|
+
const msg = err.message ?? "";
|
|
81
|
+
const stack = err.stack ?? "";
|
|
82
|
+
const isNextIntlPlugin = msg.includes("next-intl") || stack.includes("next-intl/plugin") || stack.includes("next-intl/dist");
|
|
83
|
+
console.warn(`[vinext] Failed to load ${filename}: ${msg}`);
|
|
84
|
+
if (isNextIntlPlugin) console.warn("[vinext] Hint: createNextIntlPlugin() is not needed with vinext. Remove the next-intl/plugin wrapper from your next.config — vinext auto-detects next-intl and registers the i18n config alias automatically.");
|
|
96
85
|
}
|
|
97
86
|
/**
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
87
|
+
* Unwrap the config value from a loaded module, calling it if it's a
|
|
88
|
+
* function-form config (Next.js supports `module.exports = (phase, opts) => config`).
|
|
89
|
+
*/
|
|
101
90
|
async function unwrapConfig(mod, phase = PHASE_DEVELOPMENT_SERVER) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
defaultConfig: {},
|
|
106
|
-
});
|
|
107
|
-
return result;
|
|
108
|
-
}
|
|
109
|
-
return config;
|
|
91
|
+
const config = mod.default ?? mod;
|
|
92
|
+
if (typeof config === "function") return await config(phase, { defaultConfig: {} });
|
|
93
|
+
return config;
|
|
110
94
|
}
|
|
111
95
|
/**
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
catch (e2) {
|
|
145
|
-
warnConfigLoadFailure(filename, e2);
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
warnConfigLoadFailure(filename, e);
|
|
150
|
-
return null;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return null;
|
|
96
|
+
* Find and load the next.config file from the project root.
|
|
97
|
+
* Returns null if no config file is found.
|
|
98
|
+
*
|
|
99
|
+
* Attempts Vite's module runner first so TS configs and extensionless local
|
|
100
|
+
* imports (e.g. `import "./env"`) resolve consistently. If loading fails due
|
|
101
|
+
* to CJS constructs (`require`, `module.exports`), falls back to `createRequire`
|
|
102
|
+
* so common CJS plugin wrappers (nextra, @next/mdx, etc.) still work.
|
|
103
|
+
*/
|
|
104
|
+
async function loadNextConfig(root, phase = PHASE_DEVELOPMENT_SERVER) {
|
|
105
|
+
for (const filename of CONFIG_FILES) {
|
|
106
|
+
const configPath = path.join(root, filename);
|
|
107
|
+
if (!fs.existsSync(configPath)) continue;
|
|
108
|
+
try {
|
|
109
|
+
const { runnerImport } = await import("vite");
|
|
110
|
+
const { module: mod } = await runnerImport(configPath, {
|
|
111
|
+
root,
|
|
112
|
+
logLevel: "error",
|
|
113
|
+
clearScreen: false
|
|
114
|
+
});
|
|
115
|
+
return await unwrapConfig(mod, phase);
|
|
116
|
+
} catch (e) {
|
|
117
|
+
if (isCjsError(e) && (filename.endsWith(".js") || filename.endsWith(".cjs"))) try {
|
|
118
|
+
return await unwrapConfig({ default: createRequire(path.join(root, "package.json"))(configPath) }, phase);
|
|
119
|
+
} catch (e2) {
|
|
120
|
+
warnConfigLoadFailure(filename, e2);
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
warnConfigLoadFailure(filename, e);
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return null;
|
|
154
128
|
}
|
|
155
129
|
/**
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
130
|
+
* Generate a UUID that doesn't contain "ad" to avoid false-positive ad-blocker hits.
|
|
131
|
+
* Mirrors Next.js's own nanoid retry loop.
|
|
132
|
+
*/
|
|
159
133
|
function safeUUID() {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return id;
|
|
134
|
+
let id = randomUUID();
|
|
135
|
+
while (/ad/i.test(id)) id = randomUUID();
|
|
136
|
+
return id;
|
|
164
137
|
}
|
|
165
138
|
/**
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
139
|
+
* Call the user's generateBuildId function and validate its return value.
|
|
140
|
+
* Follows Next.js semantics: null return falls back to a random UUID; any
|
|
141
|
+
* other non-string throws. Leading/trailing whitespace is trimmed.
|
|
142
|
+
*
|
|
143
|
+
* @see https://nextjs.org/docs/app/api-reference/config/next-config-js/generateBuildId
|
|
144
|
+
*/
|
|
172
145
|
async function resolveBuildId(generate) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
const trimmed = result.trim();
|
|
182
|
-
if (trimmed.length === 0) {
|
|
183
|
-
throw new Error("generateBuildId returned an empty string. https://nextjs.org/docs/messages/generatebuildid-not-a-string");
|
|
184
|
-
}
|
|
185
|
-
return trimmed;
|
|
146
|
+
if (!generate) return safeUUID();
|
|
147
|
+
const result = await generate();
|
|
148
|
+
if (result === null) return safeUUID();
|
|
149
|
+
if (typeof result !== "string") throw new Error("generateBuildId did not return a string. https://nextjs.org/docs/messages/generatebuildid-not-a-string");
|
|
150
|
+
const trimmed = result.trim();
|
|
151
|
+
if (trimmed.length === 0) throw new Error("generateBuildId returned an empty string. https://nextjs.org/docs/messages/generatebuildid-not-a-string");
|
|
152
|
+
return trimmed;
|
|
186
153
|
}
|
|
187
154
|
/**
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
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
|
-
const buildId = await resolveBuildId(config.generateBuildId);
|
|
304
|
-
const resolved = {
|
|
305
|
-
env: config.env ?? {},
|
|
306
|
-
basePath: config.basePath ?? "",
|
|
307
|
-
trailingSlash: config.trailingSlash ?? false,
|
|
308
|
-
output: output === "export" || output === "standalone" ? output : "",
|
|
309
|
-
pageExtensions,
|
|
310
|
-
cacheComponents: config.cacheComponents ?? false,
|
|
311
|
-
redirects,
|
|
312
|
-
rewrites,
|
|
313
|
-
headers,
|
|
314
|
-
images: config.images,
|
|
315
|
-
i18n,
|
|
316
|
-
mdx,
|
|
317
|
-
aliases,
|
|
318
|
-
allowedDevOrigins,
|
|
319
|
-
serverActionsAllowedOrigins,
|
|
320
|
-
serverActionsBodySizeLimit,
|
|
321
|
-
buildId,
|
|
322
|
-
};
|
|
323
|
-
// Auto-detect next-intl (lowest priority — explicit aliases from
|
|
324
|
-
// webpack/turbopack already in `aliases` take precedence)
|
|
325
|
-
detectNextIntlConfig(root, resolved);
|
|
326
|
-
return resolved;
|
|
155
|
+
* Resolve a NextConfig into a fully-resolved ResolvedNextConfig.
|
|
156
|
+
* Awaits async functions for redirects/rewrites/headers.
|
|
157
|
+
*/
|
|
158
|
+
async function resolveNextConfig(config, root = process.cwd()) {
|
|
159
|
+
if (!config) {
|
|
160
|
+
const buildId = await resolveBuildId(void 0);
|
|
161
|
+
const resolved = {
|
|
162
|
+
env: {},
|
|
163
|
+
basePath: "",
|
|
164
|
+
trailingSlash: false,
|
|
165
|
+
output: "",
|
|
166
|
+
pageExtensions: normalizePageExtensions(),
|
|
167
|
+
cacheComponents: false,
|
|
168
|
+
redirects: [],
|
|
169
|
+
rewrites: {
|
|
170
|
+
beforeFiles: [],
|
|
171
|
+
afterFiles: [],
|
|
172
|
+
fallback: []
|
|
173
|
+
},
|
|
174
|
+
headers: [],
|
|
175
|
+
images: void 0,
|
|
176
|
+
i18n: null,
|
|
177
|
+
mdx: null,
|
|
178
|
+
aliases: {},
|
|
179
|
+
allowedDevOrigins: [],
|
|
180
|
+
serverActionsAllowedOrigins: [],
|
|
181
|
+
serverActionsBodySizeLimit: 1 * 1024 * 1024,
|
|
182
|
+
serverExternalPackages: [],
|
|
183
|
+
buildId
|
|
184
|
+
};
|
|
185
|
+
detectNextIntlConfig(root, resolved);
|
|
186
|
+
return resolved;
|
|
187
|
+
}
|
|
188
|
+
let redirects = [];
|
|
189
|
+
if (config.redirects) {
|
|
190
|
+
const result = await config.redirects();
|
|
191
|
+
redirects = Array.isArray(result) ? result : [];
|
|
192
|
+
}
|
|
193
|
+
let rewrites = {
|
|
194
|
+
beforeFiles: [],
|
|
195
|
+
afterFiles: [],
|
|
196
|
+
fallback: []
|
|
197
|
+
};
|
|
198
|
+
if (config.rewrites) {
|
|
199
|
+
const result = await config.rewrites();
|
|
200
|
+
if (Array.isArray(result)) rewrites.afterFiles = result;
|
|
201
|
+
else rewrites = {
|
|
202
|
+
beforeFiles: result.beforeFiles ?? [],
|
|
203
|
+
afterFiles: result.afterFiles ?? [],
|
|
204
|
+
fallback: result.fallback ?? []
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
{
|
|
208
|
+
const externalRewrites = [
|
|
209
|
+
...rewrites.beforeFiles,
|
|
210
|
+
...rewrites.afterFiles,
|
|
211
|
+
...rewrites.fallback
|
|
212
|
+
].filter((rewrite) => isExternalUrl(rewrite.destination));
|
|
213
|
+
if (externalRewrites.length > 0) {
|
|
214
|
+
const noun = externalRewrites.length === 1 ? "external rewrite" : "external rewrites";
|
|
215
|
+
const listing = externalRewrites.map((rewrite) => ` ${rewrite.source} → ${rewrite.destination}`).join("\n");
|
|
216
|
+
console.warn(`[vinext] Found ${externalRewrites.length} ${noun} that proxy requests to external origins:\n${listing}\nRequest headers, including credential headers (cookie, authorization, proxy-authorization, x-api-key), are forwarded to the external origin to match Next.js behavior. If you do not want to forward credentials, use an API route or route handler where you control exactly which headers are sent.`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
let headers = [];
|
|
220
|
+
if (config.headers) headers = await config.headers();
|
|
221
|
+
const webpackProbe = await probeWebpackConfig(config, root);
|
|
222
|
+
const mdx = webpackProbe.mdx;
|
|
223
|
+
const aliases = {
|
|
224
|
+
...extractTurboAliases(config, root),
|
|
225
|
+
...webpackProbe.aliases
|
|
226
|
+
};
|
|
227
|
+
const allowedDevOrigins = Array.isArray(config.allowedDevOrigins) ? config.allowedDevOrigins : [];
|
|
228
|
+
const experimental = config.experimental;
|
|
229
|
+
const serverActionsConfig = experimental?.serverActions;
|
|
230
|
+
const serverActionsAllowedOrigins = Array.isArray(serverActionsConfig?.allowedOrigins) ? serverActionsConfig.allowedOrigins : [];
|
|
231
|
+
const serverActionsBodySizeLimit = parseBodySizeLimit(serverActionsConfig?.bodySizeLimit);
|
|
232
|
+
const legacyServerComponentsExternal = experimental?.serverComponentsExternalPackages;
|
|
233
|
+
const serverExternalPackages = Array.isArray(config.serverExternalPackages) ? config.serverExternalPackages : Array.isArray(legacyServerComponentsExternal) ? legacyServerComponentsExternal : [];
|
|
234
|
+
if (config.webpack !== void 0) if (mdx || Object.keys(webpackProbe.aliases).length > 0) console.warn("[vinext] next.config option \"webpack\" is only partially supported. vinext preserves resolve.alias entries and MDX loader settings, but other webpack customization is ignored");
|
|
235
|
+
else console.warn("[vinext] next.config option \"webpack\" is not yet supported and will be ignored");
|
|
236
|
+
const output = config.output ?? "";
|
|
237
|
+
if (output && output !== "export" && output !== "standalone") console.warn(`[vinext] Unknown output mode "${output}", ignoring`);
|
|
238
|
+
const pageExtensions = normalizePageExtensions(config.pageExtensions);
|
|
239
|
+
let i18n = null;
|
|
240
|
+
if (config.i18n) i18n = {
|
|
241
|
+
locales: config.i18n.locales,
|
|
242
|
+
defaultLocale: config.i18n.defaultLocale,
|
|
243
|
+
localeDetection: config.i18n.localeDetection ?? true,
|
|
244
|
+
domains: config.i18n.domains
|
|
245
|
+
};
|
|
246
|
+
const buildId = await resolveBuildId(config.generateBuildId);
|
|
247
|
+
const resolved = {
|
|
248
|
+
env: config.env ?? {},
|
|
249
|
+
basePath: config.basePath ?? "",
|
|
250
|
+
trailingSlash: config.trailingSlash ?? false,
|
|
251
|
+
output: output === "export" || output === "standalone" ? output : "",
|
|
252
|
+
pageExtensions,
|
|
253
|
+
cacheComponents: config.cacheComponents ?? false,
|
|
254
|
+
redirects,
|
|
255
|
+
rewrites,
|
|
256
|
+
headers,
|
|
257
|
+
images: config.images,
|
|
258
|
+
i18n,
|
|
259
|
+
mdx,
|
|
260
|
+
aliases,
|
|
261
|
+
allowedDevOrigins,
|
|
262
|
+
serverActionsAllowedOrigins,
|
|
263
|
+
serverActionsBodySizeLimit,
|
|
264
|
+
serverExternalPackages,
|
|
265
|
+
buildId
|
|
266
|
+
};
|
|
267
|
+
detectNextIntlConfig(root, resolved);
|
|
268
|
+
return resolved;
|
|
327
269
|
}
|
|
328
270
|
function normalizeAliasEntries(aliases, root) {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
}
|
|
337
|
-
return normalized;
|
|
271
|
+
if (!aliases) return {};
|
|
272
|
+
const normalized = {};
|
|
273
|
+
for (const [key, value] of Object.entries(aliases)) {
|
|
274
|
+
if (typeof value !== "string") continue;
|
|
275
|
+
normalized[key] = path.isAbsolute(value) ? value : path.resolve(root, value);
|
|
276
|
+
}
|
|
277
|
+
return normalized;
|
|
338
278
|
}
|
|
339
279
|
function extractTurboAliases(config, root) {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
};
|
|
280
|
+
const experimentalTurbo = config.experimental?.turbo;
|
|
281
|
+
const topLevelTurbopack = config.turbopack;
|
|
282
|
+
return {
|
|
283
|
+
...normalizeAliasEntries(experimentalTurbo?.resolveAlias, root),
|
|
284
|
+
...normalizeAliasEntries(topLevelTurbopack?.resolveAlias, root)
|
|
285
|
+
};
|
|
347
286
|
}
|
|
348
287
|
async function probeWebpackConfig(config, root) {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
288
|
+
if (typeof config.webpack !== "function") return {
|
|
289
|
+
aliases: {},
|
|
290
|
+
mdx: null
|
|
291
|
+
};
|
|
292
|
+
const mockModuleRules = [];
|
|
293
|
+
const mockConfig = {
|
|
294
|
+
context: root,
|
|
295
|
+
resolve: { alias: {} },
|
|
296
|
+
module: { rules: mockModuleRules },
|
|
297
|
+
plugins: []
|
|
298
|
+
};
|
|
299
|
+
const mockOptions = {
|
|
300
|
+
defaultLoaders: { babel: { loader: "next-babel-loader" } },
|
|
301
|
+
isServer: false,
|
|
302
|
+
dev: false,
|
|
303
|
+
dir: root
|
|
304
|
+
};
|
|
305
|
+
try {
|
|
306
|
+
const finalConfig = await config.webpack(mockConfig, mockOptions) ?? mockConfig;
|
|
307
|
+
const rules = finalConfig.module?.rules ?? mockModuleRules;
|
|
308
|
+
return {
|
|
309
|
+
aliases: normalizeAliasEntries(finalConfig.resolve?.alias, root),
|
|
310
|
+
mdx: extractMdxOptionsFromRules(rules)
|
|
311
|
+
};
|
|
312
|
+
} catch {
|
|
313
|
+
return {
|
|
314
|
+
aliases: {},
|
|
315
|
+
mdx: null
|
|
316
|
+
};
|
|
317
|
+
}
|
|
377
318
|
}
|
|
378
319
|
/**
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
320
|
+
* Extract MDX compilation options (remark/rehype/recma plugins) from
|
|
321
|
+
* a Next.js config that uses @next/mdx.
|
|
322
|
+
*
|
|
323
|
+
* @next/mdx wraps the config with a webpack function that injects an MDX
|
|
324
|
+
* loader rule. The remark/rehype plugins are captured in that closure.
|
|
325
|
+
* We probe the webpack function with a mock config to extract them.
|
|
326
|
+
*/
|
|
327
|
+
async function extractMdxOptions(config, root = process.cwd()) {
|
|
328
|
+
return (await probeWebpackConfig(config, root)).mdx;
|
|
388
329
|
}
|
|
389
330
|
/**
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
331
|
+
* Probe file candidates relative to root. Returns the first one that exists,
|
|
332
|
+
* or null if none match.
|
|
333
|
+
*/
|
|
393
334
|
function probeFiles(root, candidates) {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
return null;
|
|
335
|
+
for (const candidate of candidates) {
|
|
336
|
+
const abs = path.resolve(root, candidate);
|
|
337
|
+
if (fs.existsSync(abs)) return abs;
|
|
338
|
+
}
|
|
339
|
+
return null;
|
|
400
340
|
}
|
|
401
341
|
const I18N_REQUEST_CANDIDATES = [
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
342
|
+
"i18n/request.ts",
|
|
343
|
+
"i18n/request.tsx",
|
|
344
|
+
"i18n/request.js",
|
|
345
|
+
"i18n/request.jsx",
|
|
346
|
+
"src/i18n/request.ts",
|
|
347
|
+
"src/i18n/request.tsx",
|
|
348
|
+
"src/i18n/request.js",
|
|
349
|
+
"src/i18n/request.jsx"
|
|
410
350
|
];
|
|
411
351
|
/**
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
}
|
|
440
|
-
// Probe for the i18n request config file
|
|
441
|
-
const configPath = probeFiles(root, I18N_REQUEST_CANDIDATES);
|
|
442
|
-
if (!configPath)
|
|
443
|
-
return;
|
|
444
|
-
resolved.aliases["next-intl/config"] = configPath;
|
|
445
|
-
if (resolved.trailingSlash) {
|
|
446
|
-
resolved.env._next_intl_trailing_slash = "true";
|
|
447
|
-
}
|
|
352
|
+
* Detect next-intl in the project and auto-register the `next-intl/config`
|
|
353
|
+
* alias if needed.
|
|
354
|
+
*
|
|
355
|
+
* next-intl's `createNextIntlPlugin()` crashes in vinext because it calls
|
|
356
|
+
* `require('next/package.json')` to check the Next.js version. Instead,
|
|
357
|
+
* vinext detects next-intl and registers the alias automatically.
|
|
358
|
+
*
|
|
359
|
+
* Note: `require.resolve('next-intl')` walks up to parent `node_modules`
|
|
360
|
+
* directories via standard Node module resolution. In a monorepo, next-intl
|
|
361
|
+
* installed at the workspace root will trigger detection even if not listed
|
|
362
|
+
* in the project's own package.json. This is acceptable since a workspace-root
|
|
363
|
+
* install implies the user wants it available.
|
|
364
|
+
*
|
|
365
|
+
* Mutates `resolved.aliases` and `resolved.env` in place.
|
|
366
|
+
*/
|
|
367
|
+
function detectNextIntlConfig(root, resolved) {
|
|
368
|
+
if (resolved.aliases["next-intl/config"]) return;
|
|
369
|
+
const require = createRequire(path.join(root, "package.json"));
|
|
370
|
+
try {
|
|
371
|
+
require.resolve("next-intl");
|
|
372
|
+
} catch {
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
const configPath = probeFiles(root, I18N_REQUEST_CANDIDATES);
|
|
376
|
+
if (!configPath) return;
|
|
377
|
+
resolved.aliases["next-intl/config"] = configPath;
|
|
378
|
+
if (resolved.trailingSlash) resolved.env._next_intl_trailing_slash = "true";
|
|
448
379
|
}
|
|
449
380
|
function extractMdxOptionsFromRules(rules) {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
}
|
|
456
|
-
return null;
|
|
381
|
+
for (const rule of rules) {
|
|
382
|
+
const loaders = extractMdxLoaders(rule);
|
|
383
|
+
if (loaders) return loaders;
|
|
384
|
+
}
|
|
385
|
+
return null;
|
|
457
386
|
}
|
|
458
387
|
/**
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
388
|
+
* Recursively search a webpack rule (which may have nested `oneOf` arrays)
|
|
389
|
+
* for an MDX loader and extract its remark/rehype/recma plugin options.
|
|
390
|
+
*/
|
|
462
391
|
function extractMdxLoaders(rule) {
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
for (const loader of use) {
|
|
476
|
-
const loaderPath = typeof loader === "string" ? loader : loader?.loader;
|
|
477
|
-
if (typeof loaderPath === "string" && isMdxLoader(loaderPath)) {
|
|
478
|
-
const opts = typeof loader === "object" ? loader.options : {};
|
|
479
|
-
return extractPluginsFromOptions(opts);
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
// Check direct `loader` field
|
|
483
|
-
if (typeof rule.loader === "string" && isMdxLoader(rule.loader)) {
|
|
484
|
-
return extractPluginsFromOptions(rule.options);
|
|
485
|
-
}
|
|
486
|
-
return null;
|
|
392
|
+
if (!rule) return null;
|
|
393
|
+
if (Array.isArray(rule.oneOf)) for (const child of rule.oneOf) {
|
|
394
|
+
const result = extractMdxLoaders(child);
|
|
395
|
+
if (result) return result;
|
|
396
|
+
}
|
|
397
|
+
const use = Array.isArray(rule.use) ? rule.use : rule.use ? [rule.use] : [];
|
|
398
|
+
for (const loader of use) {
|
|
399
|
+
const loaderPath = typeof loader === "string" ? loader : loader?.loader;
|
|
400
|
+
if (typeof loaderPath === "string" && isMdxLoader(loaderPath)) return extractPluginsFromOptions(typeof loader === "object" ? loader.options : {});
|
|
401
|
+
}
|
|
402
|
+
if (typeof rule.loader === "string" && isMdxLoader(rule.loader)) return extractPluginsFromOptions(rule.options);
|
|
403
|
+
return null;
|
|
487
404
|
}
|
|
488
405
|
function isMdxLoader(loaderPath) {
|
|
489
|
-
|
|
490
|
-
(loaderPath.includes("@next") ||
|
|
491
|
-
loaderPath.includes("@mdx-js") ||
|
|
492
|
-
loaderPath.includes("mdx-js-loader") ||
|
|
493
|
-
loaderPath.includes("next-mdx")));
|
|
406
|
+
return loaderPath.includes("mdx") && (loaderPath.includes("@next") || loaderPath.includes("@mdx-js") || loaderPath.includes("mdx-js-loader") || loaderPath.includes("next-mdx"));
|
|
494
407
|
}
|
|
495
408
|
function extractPluginsFromOptions(opts) {
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
...(remarkPlugins && remarkPlugins.length > 0 ? { remarkPlugins } : {}),
|
|
507
|
-
...(rehypePlugins && rehypePlugins.length > 0 ? { rehypePlugins } : {}),
|
|
508
|
-
...(recmaPlugins && recmaPlugins.length > 0 ? { recmaPlugins } : {}),
|
|
509
|
-
};
|
|
510
|
-
}
|
|
511
|
-
return null;
|
|
409
|
+
if (!opts || typeof opts !== "object") return null;
|
|
410
|
+
const remarkPlugins = Array.isArray(opts.remarkPlugins) ? opts.remarkPlugins : void 0;
|
|
411
|
+
const rehypePlugins = Array.isArray(opts.rehypePlugins) ? opts.rehypePlugins : void 0;
|
|
412
|
+
const recmaPlugins = Array.isArray(opts.recmaPlugins) ? opts.recmaPlugins : void 0;
|
|
413
|
+
if (remarkPlugins && remarkPlugins.length > 0 || rehypePlugins && rehypePlugins.length > 0 || recmaPlugins && recmaPlugins.length > 0) return {
|
|
414
|
+
...remarkPlugins && remarkPlugins.length > 0 ? { remarkPlugins } : {},
|
|
415
|
+
...rehypePlugins && rehypePlugins.length > 0 ? { rehypePlugins } : {},
|
|
416
|
+
...recmaPlugins && recmaPlugins.length > 0 ? { recmaPlugins } : {}
|
|
417
|
+
};
|
|
418
|
+
return null;
|
|
512
419
|
}
|
|
420
|
+
//#endregion
|
|
421
|
+
export { detectNextIntlConfig, extractMdxOptions, loadNextConfig, parseBodySizeLimit, resolveNextConfig };
|
|
422
|
+
|
|
513
423
|
//# sourceMappingURL=next-config.js.map
|