vinext 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/THIRD_PARTY_LICENSES.md +47 -0
- package/dist/_virtual/_rolldown/runtime.js +4 -3
- package/dist/build/action-owner-manifest.d.ts +3 -2
- package/dist/build/action-owner-manifest.js +18 -2
- package/dist/build/app-page-static-eligibility.d.ts +17 -1
- package/dist/build/app-page-static-eligibility.js +80 -13
- package/dist/build/clean-output.d.ts +2 -1
- package/dist/build/client-build-config.d.ts +13 -3
- package/dist/build/client-build-config.js +46 -9
- package/dist/build/client-reference-async.d.ts +48 -0
- package/dist/build/client-reference-async.js +123 -0
- package/dist/build/client-reference-chunks.d.ts +32 -0
- package/dist/build/client-reference-chunks.js +111 -0
- package/dist/build/client-reference-groups.d.ts +9 -1
- package/dist/build/client-reference-groups.js +40 -2
- package/dist/build/css-url-assets.d.ts +2 -1
- package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
- package/dist/build/google-fonts/font-metadata.d.ts +2 -1
- package/dist/build/google-fonts/validate.d.ts +2 -1
- package/dist/build/inline-css.d.ts +2 -1
- package/dist/build/module-dependency-cache.d.ts +2 -1
- package/dist/build/next-client-runtime-manifests.d.ts +2 -1
- package/dist/build/precompress.d.ts +2 -1
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-paths.d.ts +2 -1
- package/dist/build/prerender-phase.d.ts +2 -1
- package/dist/build/prerender-server-pool.js +1 -1
- package/dist/build/prerender.d.ts +3 -2
- package/dist/build/prerender.js +6 -5
- package/dist/build/report.d.ts +2 -15
- package/dist/build/report.js +1 -51
- package/dist/build/run-prerender.d.ts +2 -1
- package/dist/build/server-actions-encryption-key.d.ts +2 -1
- package/dist/build/ssr-manifest.js +25 -2
- package/dist/build/standalone.d.ts +2 -1
- package/dist/cache/cache-adapters-virtual.d.ts +2 -1
- package/dist/cache.js +1 -2
- package/dist/check.d.ts +2 -1
- package/dist/check.js +5 -1
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli.js +5 -0
- package/dist/client/client-redirect-matcher.js +2 -1
- package/dist/client/client-redirects.d.ts +4 -3
- package/dist/client/client-redirects.js +2 -1
- package/dist/client/client-rewrites.d.ts +2 -1
- package/dist/client/dev-error-overlay-store.d.ts +2 -1
- package/dist/client/dev-error-overlay.js +1 -1
- package/dist/client/index.js +1 -2
- package/dist/client/instrumentation-client-state.js +5 -5
- package/dist/client/navigation-runtime.d.ts +16 -2
- package/dist/client/navigation-runtime.js +2 -2
- package/dist/client/pages-router-link-navigation.d.ts +2 -1
- package/dist/client/vinext-next-data.d.ts +25 -1
- package/dist/client/window-next.d.ts +2 -1
- package/dist/config/config-matchers.d.ts +12 -1
- package/dist/config/config-matchers.js +111 -16
- package/dist/config/dotenv.d.ts +2 -1
- package/dist/config/next-config.d.ts +32 -1
- package/dist/config/next-config.js +93 -5
- package/dist/config/tsconfig-paths.d.ts +2 -1
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/dbcs-codec.js +327 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/dbcs-data.js +123 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/index.js +29 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/internal.js +134 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-codec.js +50 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-data-generated.js +455 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-data.js +147 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/big5-added.json.js +169 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp936.json.js +2584 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp949.json.js +2220 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp950.json.js +227 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/eucjp.json.js +425 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/gb18030-ranges.json.js +427 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/gbk-added.json.js +229 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/shiftjis.json.js +292 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/utf16.js +106 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/utf7.js +182 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/bom-handling.js +42 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/extend-node.js +147 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/index.js +94 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/streams.js +95 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
- package/dist/deps/.pnpm/safer-buffer@2.1.2/deps/safer-buffer/safer.js +45 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
- package/dist/entries/app-browser-entry.d.ts +20 -5
- package/dist/entries/app-browser-entry.js +79 -6
- package/dist/entries/app-rsc-entry.d.ts +2 -1
- package/dist/entries/app-rsc-entry.js +59 -60
- package/dist/entries/app-rsc-manifest.d.ts +2 -1
- package/dist/entries/app-rsc-manifest.js +56 -4
- package/dist/entries/app-ssr-entry.js +1 -0
- package/dist/entries/pages-entry-helpers.js +1 -2
- package/dist/entries/pages-server-entry.d.ts +2 -1
- package/dist/entries/pages-server-entry.js +34 -9
- package/dist/entries/runtime-entry-module.d.ts +1 -0
- package/dist/entries/runtime-entry-module.js +4 -1
- package/dist/image/image-adapters-virtual.d.ts +2 -1
- package/dist/index.js +184 -103
- package/dist/init-cloudflare.d.ts +1 -3
- package/dist/init-cloudflare.js +10 -48
- package/dist/init-platform.d.ts +2 -0
- package/dist/init-platform.js +4 -0
- package/dist/plugins/client-compile-hints.d.ts +30 -0
- package/dist/plugins/client-compile-hints.js +88 -0
- package/dist/plugins/client-reference-dedup.d.ts +2 -1
- package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
- package/dist/plugins/dynamic-preload-metadata.js +1 -1
- package/dist/plugins/environment.d.ts +2 -1
- package/dist/plugins/extensionless-dynamic-import.js +6 -2
- package/dist/plugins/fonts.js +9 -12
- package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
- package/dist/plugins/import-meta-url.d.ts +2 -1
- package/dist/plugins/next-intl-catalog.d.ts +12 -0
- package/dist/plugins/next-intl-catalog.js +85 -0
- package/dist/plugins/og-assets.d.ts +2 -1
- package/dist/plugins/og-assets.js +2 -3
- package/dist/plugins/optimize-imports.d.ts +2 -1
- package/dist/plugins/pages-node-externals.d.ts +3 -1
- package/dist/plugins/pages-node-externals.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -1
- package/dist/plugins/require-condition-resolution.d.ts +2 -1
- package/dist/plugins/rsc-client-reference-loaders.d.ts +8 -0
- package/dist/plugins/rsc-client-reference-loaders.js +170 -68
- package/dist/plugins/rsc-client-shim-excludes.js +2 -0
- package/dist/plugins/sass.d.ts +2 -1
- package/dist/plugins/strip-server-exports.d.ts +2 -1
- package/dist/plugins/styled-jsx.d.ts +2 -1
- package/dist/plugins/transform-result.d.ts +2 -1
- package/dist/plugins/typeof-window.d.ts +2 -1
- package/dist/plugins/use-cache-callable.d.ts +1 -1
- package/dist/plugins/use-cache-callable.js +136 -94
- package/dist/plugins/worker-image-imports.js +1 -1
- package/dist/plugins/worker-use-server.d.ts +2 -1
- package/dist/routing/app-route-graph.d.ts +46 -0
- package/dist/routing/app-route-graph.js +131 -51
- package/dist/routing/browser-route-manifest.d.ts +2 -1
- package/dist/routing/optimistic-route-trie.d.ts +2 -1
- package/dist/routing/route-matching.d.ts +2 -1
- package/dist/routing/route-pattern.d.ts +2 -1
- package/dist/server/accept-encoding.d.ts +2 -1
- package/dist/server/api-handler.js +19 -4
- package/dist/server/app-action-forwarding.d.ts +2 -1
- package/dist/server/app-bfcache-identity.d.ts +2 -1
- package/dist/server/app-bfcache-identity.js +1 -1
- package/dist/server/app-browser-action-result.d.ts +2 -1
- package/dist/server/app-browser-entry.js +106 -66
- package/dist/server/app-browser-error.d.ts +2 -1
- package/dist/server/app-browser-history-controller.d.ts +7 -5
- package/dist/server/app-browser-history-controller.js +93 -15
- package/dist/server/app-browser-hydration.d.ts +2 -1
- package/dist/server/app-browser-interception-context.d.ts +2 -1
- package/dist/server/app-browser-navigation-controller.d.ts +2 -2
- package/dist/server/app-browser-navigation-controller.js +16 -12
- package/dist/server/app-browser-popstate.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.js +4 -4
- package/dist/server/app-browser-server-action-client.d.ts +4 -1
- package/dist/server/app-browser-server-action-client.js +4 -3
- package/dist/server/app-browser-state.d.ts +2 -4
- package/dist/server/app-browser-state.js +9 -4
- package/dist/server/app-browser-stream.d.ts +2 -1
- package/dist/server/app-browser-supplemental-refresh.js +16 -1
- package/dist/server/app-browser-visible-commit.d.ts +3 -2
- package/dist/server/app-browser-visible-commit.js +2 -12
- package/dist/server/app-client-reference-manifest.d.ts +31 -0
- package/dist/server/app-client-reference-manifest.js +46 -0
- package/dist/server/app-client-reference-preloader.d.ts +25 -5
- package/dist/server/app-client-reference-preloader.js +22 -7
- package/dist/server/app-elements-wire.d.ts +8 -39
- package/dist/server/app-elements-wire.js +4 -41
- package/dist/server/app-elements.d.ts +4 -2
- package/dist/server/app-elements.js +4 -2
- package/dist/server/app-fallback-renderer.d.ts +9 -2
- package/dist/server/app-fallback-renderer.js +4 -1
- package/dist/server/app-history-state.d.ts +4 -3
- package/dist/server/app-history-state.js +5 -2
- package/dist/server/app-inline-css-client.d.ts +2 -1
- package/dist/server/app-metadata-tracing.d.ts +2 -1
- package/dist/server/app-mounted-layouts.d.ts +21 -0
- package/dist/server/app-mounted-layouts.js +67 -0
- package/dist/server/app-optimistic-routing.d.ts +37 -2
- package/dist/server/app-optimistic-routing.js +75 -2
- package/dist/server/app-page-boundary-render.d.ts +20 -2
- package/dist/server/app-page-boundary-render.js +224 -40
- package/dist/server/app-page-boundary.d.ts +34 -5
- package/dist/server/app-page-boundary.js +41 -8
- package/dist/server/app-page-cache-finalizer.d.ts +14 -2
- package/dist/server/app-page-cache-finalizer.js +71 -30
- package/dist/server/app-page-cache-render.d.ts +10 -2
- package/dist/server/app-page-cache-render.js +14 -2
- package/dist/server/app-page-cache.d.ts +13 -1
- package/dist/server/app-page-cache.js +33 -11
- package/dist/server/app-page-dispatch.d.ts +39 -11
- package/dist/server/app-page-dispatch.js +236 -177
- package/dist/server/app-page-element-builder.d.ts +19 -3
- package/dist/server/app-page-element-builder.js +193 -71
- package/dist/server/app-page-execution.d.ts +43 -51
- package/dist/server/app-page-execution.js +205 -92
- package/dist/server/app-page-head.d.ts +108 -3
- package/dist/server/app-page-head.js +337 -154
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +49 -2
- package/dist/server/app-page-http-access-fallback-metadata.js +77 -2
- package/dist/server/app-page-layout-gate.d.ts +35 -0
- package/dist/server/app-page-layout-gate.js +50 -0
- package/dist/server/app-page-method.d.ts +2 -1
- package/dist/server/app-page-params.d.ts +0 -1
- package/dist/server/app-page-params.js +1 -14
- package/dist/server/app-page-probe.d.ts +5 -22
- package/dist/server/app-page-probe.js +4 -37
- package/dist/server/app-page-render-identity.d.ts +2 -1
- package/dist/server/app-page-render.d.ts +9 -13
- package/dist/server/app-page-render.js +108 -214
- package/dist/server/app-page-request.d.ts +15 -4
- package/dist/server/app-page-request.js +2 -2
- package/dist/server/app-page-response.js +3 -3
- package/dist/server/app-page-route-wiring.d.ts +65 -8
- package/dist/server/app-page-route-wiring.js +259 -103
- package/dist/server/app-page-rsc-render-status.d.ts +29 -2
- package/dist/server/app-page-rsc-render-status.js +121 -13
- package/dist/server/app-page-search-params-observation.d.ts +7 -2
- package/dist/server/app-page-search-params-observation.js +8 -1
- package/dist/server/app-page-segment-plan.d.ts +2 -1
- package/dist/server/app-page-stream.d.ts +33 -1
- package/dist/server/app-page-stream.js +25 -6
- package/dist/server/app-pages-bridge.d.ts +6 -1
- package/dist/server/app-pages-bridge.js +7 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
- package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
- package/dist/server/app-prerender-endpoints.d.ts +2 -1
- package/dist/server/app-prerender-static-params.d.ts +2 -1
- package/dist/server/app-render-dependency.d.ts +21 -4
- package/dist/server/app-render-dependency.js +100 -33
- package/dist/server/app-request-stage-dispatch.js +1 -1
- package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
- package/dist/server/app-response-stage-entry.d.ts +2 -1
- package/dist/server/app-route-handler-cache.d.ts +2 -1
- package/dist/server/app-route-handler-cache.js +2 -2
- package/dist/server/app-route-handler-dispatch.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.js +15 -10
- package/dist/server/app-route-handler-execution.d.ts +2 -1
- package/dist/server/app-route-handler-execution.js +8 -3
- package/dist/server/app-route-handler-policy.d.ts +1 -1
- package/dist/server/app-route-handler-policy.js +3 -3
- package/dist/server/app-route-handler-response.d.ts +2 -1
- package/dist/server/app-route-handler-response.js +1 -1
- package/dist/server/app-route-handler-runtime.d.ts +2 -1
- package/dist/server/app-route-handler-runtime.js +17 -4
- package/dist/server/app-route-module-loader.d.ts +18 -1
- package/dist/server/app-route-module-loader.js +8 -0
- package/dist/server/app-route-tree-prefetch.d.ts +2 -1
- package/dist/server/app-rsc-cache-busting.d.ts +2 -2
- package/dist/server/app-rsc-cache-busting.js +4 -4
- package/dist/server/app-rsc-error-handler.d.ts +4 -2
- package/dist/server/app-rsc-error-handler.js +9 -1
- package/dist/server/app-rsc-errors.d.ts +10 -1
- package/dist/server/app-rsc-errors.js +8 -1
- package/dist/server/app-rsc-handler.d.ts +7 -6
- package/dist/server/app-rsc-handler.js +36 -34
- package/dist/server/app-rsc-request-normalization.d.ts +0 -4
- package/dist/server/app-rsc-request-normalization.js +1 -4
- package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
- package/dist/server/app-rsc-response-finalizer.js +2 -2
- package/dist/server/app-rsc-response-stage.js +5 -3
- package/dist/server/app-rsc-route-matching.d.ts +38 -1
- package/dist/server/app-rsc-route-matching.js +24 -0
- package/dist/server/app-segment-config.d.ts +2 -1
- package/dist/server/app-segment-config.js +1 -14
- package/dist/server/app-server-action-execution.d.ts +5 -2
- package/dist/server/app-server-action-execution.js +10 -7
- package/dist/server/app-ssr-entry.d.ts +8 -0
- package/dist/server/app-ssr-entry.js +98 -50
- package/dist/server/app-ssr-error-meta.d.ts +2 -1
- package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
- package/dist/server/app-ssr-stream.d.ts +22 -10
- package/dist/server/app-ssr-stream.js +300 -68
- package/dist/server/app-static-generation.d.ts +2 -1
- package/dist/server/app-streamed-client-references.d.ts +39 -0
- package/dist/server/app-streamed-client-references.js +156 -0
- package/dist/server/app-visited-response-cache.d.ts +38 -2
- package/dist/server/app-visited-response-cache.js +46 -5
- package/dist/server/app-worker-stages.d.ts +27 -4
- package/dist/server/app-worker-stages.js +45 -6
- package/dist/server/artifact-compatibility.d.ts +2 -2
- package/dist/server/artifact-compatibility.js +1 -10
- package/dist/server/bfcache-identity.d.ts +2 -1
- package/dist/server/cache-headers.d.ts +2 -1
- package/dist/server/cache-proof.d.ts +1 -115
- package/dist/server/cache-proof.js +1 -544
- package/dist/server/cacheability-request.d.ts +2 -1
- package/dist/server/cacheability-request.js +13 -8
- package/dist/server/config-headers.d.ts +2 -1
- package/dist/server/csp.d.ts +2 -1
- package/dist/server/default-global-not-found-module.d.ts +2 -1
- package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
- package/dist/server/default-http-access-fallback-modules.js +31 -0
- package/dist/server/defer-until-stream-consumed.d.ts +34 -0
- package/dist/server/defer-until-stream-consumed.js +154 -21
- package/dist/server/dev-lockfile.d.ts +32 -2
- package/dist/server/dev-lockfile.js +46 -2
- package/dist/server/dev-module-runner.d.ts +2 -1
- package/dist/server/dev-server.js +14 -6
- package/dist/server/fetch-handler.js +1 -2
- package/dist/server/file-based-metadata.d.ts +2 -1
- package/dist/server/framework-tracer.d.ts +2 -1
- package/dist/server/headers.d.ts +6 -3
- package/dist/server/headers.js +9 -5
- package/dist/server/html.d.ts +1 -0
- package/dist/server/html.js +19 -1
- package/dist/server/http-conditional.d.ts +2 -1
- package/dist/server/http-error-responses.d.ts +2 -1
- package/dist/server/implicit-tags.d.ts +2 -1
- package/dist/server/isr-cache.d.ts +8 -2
- package/dist/server/isr-cache.js +26 -1
- package/dist/server/metadata-route-build-data.d.ts +2 -1
- package/dist/server/metadata-route-build-data.js +1 -1
- package/dist/server/metadata-route-response.d.ts +2 -1
- package/dist/server/metadata-route-response.js +32 -15
- package/dist/server/metadata-routes.d.ts +2 -1
- package/dist/server/middleware-runtime.d.ts +2 -1
- package/dist/server/multi-stage.d.ts +52 -11
- package/dist/server/multi-stage.js +13 -1
- package/dist/server/navigation-planner.js +1 -1
- package/dist/server/navigation-trace.d.ts +2 -1
- package/dist/server/next-error-digest.d.ts +2 -1
- package/dist/server/nitro-public-files-plugin.d.ts +2 -1
- package/dist/server/nitro-public-files.d.ts +2 -1
- package/dist/server/opentelemetry-api.d.ts +2 -1
- package/dist/server/operation-token.d.ts +2 -1
- package/dist/server/pages-api-route.d.ts +2 -1
- package/dist/server/pages-api-route.js +28 -19
- package/dist/server/pages-asset-tags.d.ts +2 -1
- package/dist/server/pages-body-parser-config.d.ts +2 -1
- package/dist/server/pages-client-assets.d.ts +4 -0
- package/dist/server/pages-data-route.d.ts +2 -1
- package/dist/server/pages-document-asset-props.d.ts +2 -1
- package/dist/server/pages-document-initial-props.d.ts +2 -1
- package/dist/server/pages-execution-tracing.d.ts +2 -1
- package/dist/server/pages-execution-tracing.js +1 -1
- package/dist/server/pages-get-initial-props.d.ts +2 -1
- package/dist/server/pages-media-type.d.ts +21 -1
- package/dist/server/pages-media-type.js +69 -5
- package/dist/server/pages-node-compat.js +52 -27
- package/dist/server/pages-page-data.d.ts +7 -1
- package/dist/server/pages-page-data.js +35 -12
- package/dist/server/pages-page-handler.d.ts +3 -2
- package/dist/server/pages-page-handler.js +27 -27
- package/dist/server/pages-page-method.d.ts +2 -1
- package/dist/server/pages-page-response.d.ts +2 -1
- package/dist/server/pages-preview.d.ts +2 -1
- package/dist/server/pages-readiness.d.ts +2 -1
- package/dist/server/pages-request-pipeline.d.ts +10 -1
- package/dist/server/pages-request-pipeline.js +6 -7
- package/dist/server/pages-request-stage-entry.d.ts +2 -1
- package/dist/server/pages-request-stage-entry.js +14 -12
- package/dist/server/pages-response-stage-entry.d.ts +2 -1
- package/dist/server/pages-response-stage-entry.js +9 -3
- package/dist/server/pages-route-data-kind.d.ts +2 -1
- package/dist/server/prerender-cache-life-header.d.ts +2 -1
- package/dist/server/prerender-route-params.d.ts +2 -1
- package/dist/server/prod-server.js +14 -4
- package/dist/server/request-log.d.ts +2 -1
- package/dist/server/request-pipeline.d.ts +6 -0
- package/dist/server/request-pipeline.js +21 -1
- package/dist/server/request-tracing.d.ts +2 -1
- package/dist/server/request-tracing.js +1 -1
- package/dist/server/response-start-tracing.js +7 -29
- package/dist/server/rsc-render-stream.d.ts +4 -0
- package/dist/server/rsc-render-stream.js +25 -0
- package/dist/server/seed-cache.d.ts +2 -1
- package/dist/server/seed-cache.js +1 -1
- package/dist/server/shared-cache-identity.d.ts +23 -0
- package/dist/server/shared-cache-identity.js +36 -0
- package/dist/server/static-file-cache.d.ts +2 -1
- package/dist/server/static-file-cache.js +1 -0
- package/dist/server/worker-revalidation-context.d.ts +2 -1
- package/dist/server/worker-stages.d.ts +18 -4
- package/dist/server/worker-stages.js +23 -4
- package/dist/shims/app.d.ts +2 -1
- package/dist/shims/cache-callable-runtime.d.ts +2 -1
- package/dist/shims/cache-handler.d.ts +8 -3
- package/dist/shims/cache-handler.js +31 -11
- package/dist/shims/cache-request-state.d.ts +17 -20
- package/dist/shims/cache-request-state.js +16 -21
- package/dist/shims/cache-runtime.js +27 -11
- package/dist/shims/cache.d.ts +8 -7
- package/dist/shims/cache.js +17 -19
- package/dist/shims/cacheability-classification.d.ts +2 -0
- package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
- package/dist/shims/caught-not-found-boundaries.js +48 -0
- package/dist/shims/cdn-cache.d.ts +22 -5
- package/dist/shims/cdn-purge-routes.d.ts +2 -1
- package/dist/shims/client-locale.js +2 -1
- package/dist/shims/client-page-root.d.ts +2 -1
- package/dist/shims/client-page-root.js +2 -2
- package/dist/shims/config.d.ts +2 -1
- package/dist/shims/default-forbidden.d.ts +4 -0
- package/dist/shims/default-forbidden.js +18 -0
- package/dist/shims/default-not-found.d.ts +0 -5
- package/dist/shims/default-not-found.js +5 -41
- package/dist/shims/default-unauthorized.d.ts +4 -0
- package/dist/shims/default-unauthorized.js +18 -0
- package/dist/shims/dynamic.js +9 -6
- package/dist/shims/error-boundary.d.ts +39 -3
- package/dist/shims/error-boundary.js +33 -18
- package/dist/shims/fetch-cache-state.d.ts +5 -1
- package/dist/shims/fetch-cache-state.js +1 -3
- package/dist/shims/fetch-cache.d.ts +2 -1
- package/dist/shims/fetch-cache.js +34 -24
- package/dist/shims/font-google.js +1 -2
- package/dist/shims/font-utils.d.ts +3 -2
- package/dist/shims/font-utils.js +5 -3
- package/dist/shims/form.js +3 -3
- package/dist/shims/headers.d.ts +8 -23
- package/dist/shims/headers.js +17 -67
- package/dist/shims/http-access-error-fallback.d.ts +7 -0
- package/dist/shims/http-access-error-fallback.js +47 -0
- package/dist/shims/image.d.ts +1 -22
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
- package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
- package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
- package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
- package/dist/shims/internal/client-reference-loader.d.ts +7 -0
- package/dist/shims/internal/client-reference-loader.js +91 -0
- package/dist/shims/internal/cookie-serialize.d.ts +2 -1
- package/dist/shims/internal/cookies.js +1 -2
- package/dist/shims/internal/headers-state.d.ts +2 -0
- package/dist/shims/internal/headers-state.js +6 -1
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +2 -1
- package/dist/shims/internal/interpolate-as.d.ts +2 -1
- package/dist/shims/internal/navigation-untracked.js +1 -1
- package/dist/shims/internal/pages-data-target.d.ts +2 -1
- package/dist/shims/internal/pages-data-url.d.ts +2 -1
- package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
- package/dist/shims/link.js +197 -52
- package/dist/shims/metadata.d.ts +52 -29
- package/dist/shims/metadata.js +142 -42
- package/dist/shims/navigation-errors.d.ts +2 -1
- package/dist/shims/navigation-server.js +1 -1
- package/dist/shims/navigation.d.ts +95 -8
- package/dist/shims/navigation.js +255 -47
- package/dist/shims/navigation.react-server.js +2 -2
- package/dist/shims/pages-router-runtime.d.ts +2 -1
- package/dist/shims/ppr-fallback-shell.d.ts +2 -1
- package/dist/shims/request-state-types.d.ts +2 -2
- package/dist/shims/router.js +14 -3
- package/dist/shims/slot.d.ts +12 -0
- package/dist/shims/slot.js +37 -9
- package/dist/shims/unified-request-context.d.ts +1 -1
- package/dist/shims/unified-request-context.js +5 -6
- package/dist/typegen.d.ts +2 -1
- package/dist/utils/cache-control-metadata.d.ts +5 -0
- package/dist/utils/cache-control-metadata.js +9 -1
- package/dist/utils/client-build-manifest.d.ts +4 -1
- package/dist/utils/client-build-manifest.js +9 -2
- package/dist/utils/client-entry-manifest.d.ts +13 -0
- package/dist/utils/client-entry-manifest.js +20 -1
- package/dist/utils/client-reference-chunks.d.ts +45 -0
- package/dist/utils/client-reference-chunks.js +30 -0
- package/dist/utils/client-runtime-metadata.d.ts +9 -1
- package/dist/utils/client-runtime-metadata.js +40 -9
- package/dist/utils/compare.d.ts +9 -0
- package/dist/utils/compare.js +15 -1
- package/dist/utils/lazy-chunks.d.ts +14 -0
- package/dist/utils/lazy-chunks.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +2 -1
- package/dist/utils/project.d.ts +4 -3
- package/dist/utils/project.js +12 -17
- package/dist/utils/query.d.ts +2 -1
- package/dist/utils/regex.d.ts +5 -0
- package/dist/utils/regex.js +11 -1
- package/dist/utils/text-stream.d.ts +10 -5
- package/dist/utils/text-stream.js +6 -6
- package/dist/utils/vite-cli-invocation.d.ts +2 -1
- package/package.json +6 -5
- package/dist/build/layout-classification-types.d.ts +0 -60
- package/dist/build/layout-classification-types.js +0 -1
- package/dist/build/layout-classification.d.ts +0 -61
- package/dist/build/layout-classification.js +0 -98
- package/dist/build/route-classification-injector.d.ts +0 -32
- package/dist/build/route-classification-injector.js +0 -59
- package/dist/build/route-classification-manifest.d.ts +0 -53
- package/dist/build/route-classification-manifest.js +0 -143
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
- package/dist/server/app-browser-client-reuse-manifest.d.ts +0 -10
- package/dist/server/app-browser-client-reuse-manifest.js +0 -101
- package/dist/server/app-layout-param-observation.d.ts +0 -41
- package/dist/server/app-layout-param-observation.js +0 -168
- package/dist/server/client-reuse-manifest.d.ts +0 -102
- package/dist/server/client-reuse-manifest.js +0 -209
- package/dist/server/default-not-found-module.d.ts +0 -19
- package/dist/server/default-not-found-module.js +0 -18
- package/dist/server/rsc-stream-hints.d.ts +0 -21
- package/dist/server/rsc-stream-hints.js +0 -227
- package/dist/server/skip-cache-proof.d.ts +0 -60
- package/dist/server/skip-cache-proof.js +0 -168
- package/dist/server/static-layout-client-reuse-proof.d.ts +0 -13
- package/dist/server/static-layout-client-reuse-proof.js +0 -33
- package/dist/utils/sorted-array.d.ts +0 -7
- package/dist/utils/sorted-array.js +0 -20
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { AppRoute } from "../routing/app-route-graph.js";
|
|
2
2
|
import { Plugin } from "vite";
|
|
3
3
|
//#region src/plugins/rsc-client-reference-loaders.d.ts
|
|
4
|
+
/** Prefixes the module that registers one client reference outside every group. */
|
|
5
|
+
export declare const RESOLVED_CLIENT_REFERENCE_MODULE_PREFIX = "\0virtual:vinext-client-reference-module/";
|
|
6
|
+
export declare const RESOLVED_CLIENT_REFERENCE_CHUNKS_ID = "\0virtual:vinext-client-reference-chunks";
|
|
4
7
|
export type RscClientReferenceRouteOptions = {
|
|
5
8
|
/** Maps route file paths to the module ids used by the RSC module graph. */
|
|
6
9
|
canonicalizeModuleId: (id: string) => string;
|
|
@@ -37,6 +40,11 @@ export type RscClientReferenceGroupingOptions = {
|
|
|
37
40
|
export declare function createRscClientReferenceLoadersPlugin(options?: {
|
|
38
41
|
routes?: RscClientReferenceRouteOptions;
|
|
39
42
|
grouping?: RscClientReferenceGroupingOptions;
|
|
43
|
+
/**
|
|
44
|
+
* Receives the client build's client reference modules: each resolved
|
|
45
|
+
* module id with the keys of the references it registers.
|
|
46
|
+
*/
|
|
47
|
+
onClientReferenceModules?: (modules: ReadonlyMap<string, readonly string[]>) => void;
|
|
40
48
|
}): Plugin;
|
|
41
49
|
/**
|
|
42
50
|
* Exports a null preload plan from the client-references virtual module when
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
|
+
import { magicStringTransformResult, omitUnusedBuildSourcemap } from "./transform-result.js";
|
|
3
|
+
import { resolveShimRuntimeModule } from "../entries/runtime-entry-module.js";
|
|
2
4
|
import { CLIENT_REFERENCE_GROUP_MAX_COST_BYTES, collectClientReferencePreloadPlan, collectClientReferenceRouteSignatures, measureClientReferenceGroupCosts, planClientReferenceGroups, readClientModuleBindings } from "../build/client-reference-groups.js";
|
|
3
|
-
import {
|
|
5
|
+
import { collectAsyncModules, createSideEffectsDeclarationCheck } from "../build/client-reference-async.js";
|
|
6
|
+
import { RESOLVED_EAGER_CLIENT_REFERENCES_ID, hasUserClientChunkGroups } from "../build/client-build-config.js";
|
|
4
7
|
import fs from "node:fs";
|
|
5
8
|
import { isCSSRequest } from "vite";
|
|
9
|
+
import { randomBytes } from "node:crypto";
|
|
10
|
+
import MagicString from "magic-string";
|
|
6
11
|
//#region src/plugins/rsc-client-reference-loaders.ts
|
|
7
12
|
const CLIENT_REFERENCES_ID = "\0virtual:vite-rsc/client-references";
|
|
8
13
|
const RESOLVED_ID_PROXY_PREFIX = "virtual:vite-rsc/resolved-id/";
|
|
9
14
|
const RESOLVED_CLIENT_REFERENCE_GROUP_PREFIX = `\0virtual:vinext-client-reference-group-`;
|
|
15
|
+
/** Prefixes the module that registers one client reference outside every group. */
|
|
16
|
+
const RESOLVED_CLIENT_REFERENCE_MODULE_PREFIX = `\0virtual:vinext-client-reference-module/`;
|
|
10
17
|
const CLIENT_REFERENCES_ID_RE = /^\0virtual:vite-rsc\/client-references$/;
|
|
11
|
-
const
|
|
12
|
-
const
|
|
18
|
+
const CLIENT_REFERENCE_MODULE_RE = /^virtual:vinext-client-reference-(?:group-|module\/)|^virtual:vinext-client-reference-(?:chunks|eager)$/;
|
|
19
|
+
const RESOLVED_CLIENT_REFERENCE_MODULE_RE = /^\0virtual:vinext-client-reference-(?:group-|module\/)|^\0virtual:vinext-client-reference-(?:chunks|eager)$/;
|
|
20
|
+
const CLIENT_REFERENCE_CHUNKS_ID = "virtual:vinext-client-reference-chunks";
|
|
21
|
+
const RESOLVED_CLIENT_REFERENCE_CHUNKS_ID = `\0${CLIENT_REFERENCE_CHUNKS_ID}`;
|
|
22
|
+
const NO_ROUTE_CLIENT_REFERENCES_EXPORT = "export const routeClientReferences = null;\n";
|
|
13
23
|
/**
|
|
14
24
|
* Whether the cost estimate loads a module. Rolldown keeps externals and
|
|
15
25
|
* unresolved `require()`s in `importedIds` under their specifier (a bare name
|
|
@@ -47,50 +57,73 @@ function withResolvedIdProxy(resolvedId) {
|
|
|
47
57
|
function sortedRenderedExports(meta) {
|
|
48
58
|
return meta.renderedExports.slice().sort();
|
|
49
59
|
}
|
|
50
|
-
|
|
51
|
-
|
|
60
|
+
/**
|
|
61
|
+
* The exports of a client reference, read from the module namespace `binding`.
|
|
62
|
+
* Keep them lazy. In async or cyclic client module evaluation, eagerly copying
|
|
63
|
+
* module namespace values can observe an uninitialized binding.
|
|
64
|
+
*/
|
|
65
|
+
function generateClientReferenceObject(meta, binding) {
|
|
66
|
+
const exports = sortedRenderedExports(meta).map((name) => ` get ${JSON.stringify(name)}() { return ${binding}[${JSON.stringify(name)}]; },`).join("\n");
|
|
67
|
+
return exports ? `{\n${exports}\n}` : "{}";
|
|
52
68
|
}
|
|
53
|
-
function
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
69
|
+
function generateClientReferenceLoaders(metas) {
|
|
70
|
+
return `export default {\n${metas.slice().sort((a, b) => a.referenceKey.localeCompare(b.referenceKey)).map((meta) => [
|
|
71
|
+
`${JSON.stringify(meta.referenceKey)}: async () => {`,
|
|
72
|
+
` const m = await import(${JSON.stringify(withResolvedIdProxy(meta.importId))});`,
|
|
73
|
+
` return ${generateClientReferenceObject(meta, "m")};`,
|
|
74
|
+
`},`
|
|
75
|
+
].join("\n")).join("\n")}\n};\n`;
|
|
59
76
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
` },`
|
|
69
|
-
].join("\n");
|
|
70
|
-
}).join("\n")}\n};\n`;
|
|
77
|
+
/**
|
|
78
|
+
* The client build's client-references module, which the App browser entry
|
|
79
|
+
* imports. It names no client reference chunk, so the entry neither grows nor
|
|
80
|
+
* changes its hash with the app's client references: each reference's Flight
|
|
81
|
+
* row names the chunks it loads (see shims/internal/client-reference-loader.ts).
|
|
82
|
+
*/
|
|
83
|
+
function generateBrowserClientReferencesModule(loaderPath, eager) {
|
|
84
|
+
return `${eager ? `import ${JSON.stringify(RESOLVED_EAGER_CLIENT_REFERENCES_ID.slice(1))};\n` : ""}export { clientReferences as default } from ${JSON.stringify(loaderPath)};\n`;
|
|
71
85
|
}
|
|
72
86
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
87
|
+
* A client build module that registers client references as it evaluates:
|
|
88
|
+
* a route group's members, the references in chunks every page loads, or one
|
|
89
|
+
* other reference outside every group. It imports
|
|
90
|
+
* only each member's rendered exports, so unused exports and their
|
|
91
|
+
* dependencies still tree-shake as they do with direct loaders. A member
|
|
92
|
+
* without rendered exports is imported for its side effects. The last member
|
|
93
|
+
* is imported last (see build/client-reference-chunks.ts).
|
|
76
94
|
*/
|
|
77
|
-
function
|
|
78
|
-
|
|
95
|
+
function generateClientReferenceModule(metas, loaderPath) {
|
|
96
|
+
const imports = metas.map((meta, index) => {
|
|
79
97
|
const source = JSON.stringify(withResolvedIdProxy(meta.importId));
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
98
|
+
return meta.renderedExports.length > 0 ? `import * as m${index} from ${source};` : `import ${source};`;
|
|
99
|
+
});
|
|
100
|
+
const registrations = metas.map((meta, index) => `registerClientReference(${JSON.stringify(meta.referenceKey)}, ${generateClientReferenceObject(meta, `m${index}`)});`);
|
|
101
|
+
return [
|
|
102
|
+
`import { registerClientReference } from ${JSON.stringify(loaderPath)};`,
|
|
103
|
+
...imports,
|
|
104
|
+
...registrations,
|
|
105
|
+
""
|
|
106
|
+
].join("\n");
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The browser never loads this module. Its dynamic imports make each client
|
|
110
|
+
* reference module a chunk of its own that only a Flight row names.
|
|
111
|
+
*/
|
|
112
|
+
function generateClientReferenceChunksModule(moduleIds) {
|
|
113
|
+
return `export default [\n${moduleIds.map((id) => ` () => import(${JSON.stringify(id.slice(1))}),`).join("\n")}\n];\n`;
|
|
85
114
|
}
|
|
86
115
|
/**
|
|
87
116
|
* The SSR build's `routeClientReferences` export: the reference keys each route
|
|
88
117
|
* preloads before it renders (see server/app-client-reference-preloader.ts),
|
|
89
118
|
* stored as indices into `references`. Client references the plan doesn't know
|
|
90
|
-
* join `always`.
|
|
119
|
+
* join `always`. `async` holds `asyncPlaceholder`, which renderChunk replaces
|
|
120
|
+
* with the candidates whose SSR modules evaluate asynchronously.
|
|
91
121
|
*/
|
|
92
|
-
function generateRouteClientReferencesExport(plan, metaEntries) {
|
|
93
|
-
if (!plan) return
|
|
122
|
+
function generateRouteClientReferencesExport(plan, metaEntries, asyncPlaceholder) {
|
|
123
|
+
if (!plan) return {
|
|
124
|
+
code: NO_ROUTE_CLIENT_REFERENCES_EXPORT,
|
|
125
|
+
asyncCandidates: []
|
|
126
|
+
};
|
|
94
127
|
const metaById = new Map(metaEntries);
|
|
95
128
|
const references = [];
|
|
96
129
|
const indices = /* @__PURE__ */ new Map();
|
|
@@ -105,14 +138,28 @@ function generateRouteClientReferencesExport(plan, metaEntries) {
|
|
|
105
138
|
}
|
|
106
139
|
return [index];
|
|
107
140
|
});
|
|
141
|
+
const always = toIndices([...plan.preloads.always, ...metaEntries.map(([referenceId]) => referenceId).filter((referenceId) => !plan.referenceIds.has(referenceId))]);
|
|
142
|
+
const files = plan.preloads.files.map(toIndices);
|
|
143
|
+
const asyncCandidates = plan.preloads.staticOnly.flatMap((referenceId) => {
|
|
144
|
+
const index = indices.get(referenceId);
|
|
145
|
+
const meta = metaById.get(referenceId);
|
|
146
|
+
return index === void 0 || !meta ? [] : [{
|
|
147
|
+
index,
|
|
148
|
+
importId: meta.importId
|
|
149
|
+
}];
|
|
150
|
+
});
|
|
108
151
|
const manifest = {
|
|
109
152
|
references,
|
|
110
|
-
always
|
|
111
|
-
files
|
|
153
|
+
always,
|
|
154
|
+
files,
|
|
112
155
|
routes: Object.fromEntries(plan.preloads.routes),
|
|
113
|
-
routeless: plan.preloads.routeless
|
|
156
|
+
routeless: plan.preloads.routeless,
|
|
157
|
+
async: asyncPlaceholder
|
|
158
|
+
};
|
|
159
|
+
return {
|
|
160
|
+
code: `export const routeClientReferences = ${JSON.stringify(manifest)};\n`,
|
|
161
|
+
asyncCandidates
|
|
114
162
|
};
|
|
115
|
-
return `export const routeClientReferences = ${JSON.stringify(manifest)};\n`;
|
|
116
163
|
}
|
|
117
164
|
/**
|
|
118
165
|
* Replaces @vitejs/plugin-rsc's client-reference facades with per-reference
|
|
@@ -126,13 +173,17 @@ function generateRouteClientReferencesExport(plan, metaEntries) {
|
|
|
126
173
|
function createRscClientReferenceLoadersPlugin(options = {}) {
|
|
127
174
|
const { routes: routeOptions } = options;
|
|
128
175
|
const grouping = routeOptions && options.grouping;
|
|
176
|
+
const loaderPath = resolveShimRuntimeModule("internal/client-reference-loader");
|
|
129
177
|
let rscApi;
|
|
130
178
|
let root = "";
|
|
131
179
|
let groupingEnabled = false;
|
|
132
180
|
let routeSignatures = /* @__PURE__ */ new Map();
|
|
133
181
|
// @vitejs/plugin-rsc also builds before the SSR environment.
|
|
134
182
|
let preloadPlan = null;
|
|
135
|
-
const
|
|
183
|
+
const referenceModules = /* @__PURE__ */ new Map();
|
|
184
|
+
let asyncCandidates = [];
|
|
185
|
+
const asyncPlaceholder = `__vinext_async_client_references_${randomBytes(8).toString("hex")}__`;
|
|
186
|
+
const asyncPlaceholderRe = new RegExp(`(["'])${asyncPlaceholder}\\1`, "g");
|
|
136
187
|
return {
|
|
137
188
|
name: "vinext:rsc-client-reference-loaders",
|
|
138
189
|
enforce: "post",
|
|
@@ -152,7 +203,10 @@ function createRscClientReferenceLoadersPlugin(options = {}) {
|
|
|
152
203
|
routeSignatures = /* @__PURE__ */ new Map();
|
|
153
204
|
preloadPlan = null;
|
|
154
205
|
}
|
|
155
|
-
if (this.environment.name === "client")
|
|
206
|
+
if (this.environment.name === "client") {
|
|
207
|
+
referenceModules.clear();
|
|
208
|
+
options.onClientReferenceModules?.(/* @__PURE__ */ new Map());
|
|
209
|
+
}
|
|
156
210
|
},
|
|
157
211
|
buildEnd(error) {
|
|
158
212
|
if (error || !routeOptions) return;
|
|
@@ -185,15 +239,15 @@ function createRscClientReferenceLoadersPlugin(options = {}) {
|
|
|
185
239
|
});
|
|
186
240
|
},
|
|
187
241
|
resolveId: {
|
|
188
|
-
filter: { id:
|
|
242
|
+
filter: { id: CLIENT_REFERENCE_MODULE_RE },
|
|
189
243
|
handler(source) {
|
|
190
|
-
return
|
|
244
|
+
return referenceModules.has(`\0${source}`) ? `\0${source}` : null;
|
|
191
245
|
}
|
|
192
246
|
},
|
|
193
247
|
load: {
|
|
194
|
-
filter: { id:
|
|
248
|
+
filter: { id: RESOLVED_CLIENT_REFERENCE_MODULE_RE },
|
|
195
249
|
handler(id) {
|
|
196
|
-
return
|
|
250
|
+
return referenceModules.get(id) ?? null;
|
|
197
251
|
}
|
|
198
252
|
},
|
|
199
253
|
transform: {
|
|
@@ -204,16 +258,23 @@ function createRscClientReferenceLoadersPlugin(options = {}) {
|
|
|
204
258
|
const isServer = this.environment.config.consumer === "server";
|
|
205
259
|
const metaEntries = Object.entries(manager.clientReferenceMetaMap).filter(([, meta]) => meta.serverChunk);
|
|
206
260
|
const metas = metaEntries.map(([, meta]) => meta);
|
|
207
|
-
|
|
261
|
+
let routeClientReferencesExport = "";
|
|
262
|
+
if (isServer) {
|
|
263
|
+
const generated = generateRouteClientReferencesExport(preloadPlan, metaEntries, asyncPlaceholder);
|
|
264
|
+
routeClientReferencesExport = generated.code;
|
|
265
|
+
asyncCandidates = generated.asyncCandidates;
|
|
266
|
+
}
|
|
208
267
|
if (metas.length === 0) return isServer ? {
|
|
209
268
|
code: `${code}\n${routeClientReferencesExport}`,
|
|
210
269
|
map: null
|
|
211
270
|
} : null;
|
|
212
271
|
for (const [id, meta] of metaEntries) meta.groupChunkId = id;
|
|
213
|
-
const
|
|
272
|
+
const isClientBuild = this.environment.name === "client" && this.environment.mode === "build";
|
|
273
|
+
const moduleKeys = /* @__PURE__ */ new Map();
|
|
274
|
+
const grouped = /* @__PURE__ */ new Set();
|
|
214
275
|
const referenceIds = new Set(metaEntries.map(([referenceId]) => referenceId));
|
|
215
276
|
const referenceKeys = new Map(metaEntries.map(([referenceId, meta]) => [referenceId, meta.referenceKey]));
|
|
216
|
-
if (grouping && groupingEnabled &&
|
|
277
|
+
if (grouping && groupingEnabled && isClientBuild && planClientReferenceGroups({
|
|
217
278
|
referenceIds,
|
|
218
279
|
referenceKeys,
|
|
219
280
|
signatures: routeSignatures,
|
|
@@ -241,7 +302,6 @@ function createRscClientReferenceLoadersPlugin(options = {}) {
|
|
|
241
302
|
addResolution(resolved);
|
|
242
303
|
}));
|
|
243
304
|
const { external } = this.environment.config.build.rolldownOptions;
|
|
244
|
-
const moduleInfos = /* @__PURE__ */ new Map();
|
|
245
305
|
const excludedById = /* @__PURE__ */ new Map();
|
|
246
306
|
const isExcludedById = (moduleId) => {
|
|
247
307
|
let excluded = excludedById.get(moduleId);
|
|
@@ -261,9 +321,7 @@ function createRscClientReferenceLoadersPlugin(options = {}) {
|
|
|
261
321
|
importedIds: []
|
|
262
322
|
};
|
|
263
323
|
}
|
|
264
|
-
const
|
|
265
|
-
moduleInfos.set(moduleId, info);
|
|
266
|
-
const { code, importedIds } = info;
|
|
324
|
+
const { code, importedIds } = await this.load(resolutions.get(moduleId) ?? { id: moduleId });
|
|
267
325
|
if (code === null) return {
|
|
268
326
|
code,
|
|
269
327
|
importedIds
|
|
@@ -303,12 +361,6 @@ function createRscClientReferenceLoadersPlugin(options = {}) {
|
|
|
303
361
|
isSideEffectFree: (moduleId) => packages.get(moduleId)?.moduleSideEffects === false,
|
|
304
362
|
isExcluded: (moduleId) => externalIds.has(moduleId) || isExcludedById(moduleId)
|
|
305
363
|
});
|
|
306
|
-
for (const [referenceId, meta] of metaEntries) {
|
|
307
|
-
const moduleId = references.get(referenceId);
|
|
308
|
-
const info = moduleId === void 0 ? void 0 : moduleInfos.get(moduleId);
|
|
309
|
-
if (!info || info.inputFormat === "cjs") continue;
|
|
310
|
-
if (meta.renderedExports.some((name) => !info.exports.includes(name))) costs.set(referenceId, null);
|
|
311
|
-
}
|
|
312
364
|
const groups = planClientReferenceGroups({
|
|
313
365
|
referenceIds,
|
|
314
366
|
referenceKeys,
|
|
@@ -320,21 +372,71 @@ function createRscClientReferenceLoadersPlugin(options = {}) {
|
|
|
320
372
|
for (const group of groups) {
|
|
321
373
|
const groupMetas = group.referenceIds.map((referenceId) => metaById.get(referenceId));
|
|
322
374
|
const resolvedGroupId = `${RESOLVED_CLIENT_REFERENCE_GROUP_PREFIX}${group.key}`;
|
|
323
|
-
|
|
324
|
-
groupMetas.
|
|
375
|
+
referenceModules.set(resolvedGroupId, generateClientReferenceModule(groupMetas, loaderPath));
|
|
376
|
+
moduleKeys.set(resolvedGroupId, groupMetas.map((meta) => meta.referenceKey));
|
|
377
|
+
for (const meta of groupMetas) {
|
|
325
378
|
meta.groupChunkId = resolvedGroupId;
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
index
|
|
329
|
-
});
|
|
330
|
-
});
|
|
379
|
+
grouped.add(meta);
|
|
380
|
+
}
|
|
331
381
|
}
|
|
332
382
|
}
|
|
383
|
+
if (isClientBuild) {
|
|
384
|
+
const eager = [];
|
|
385
|
+
for (const [referenceId, meta] of metaEntries) {
|
|
386
|
+
if (grouped.has(meta)) continue;
|
|
387
|
+
if (grouping && groupingEnabled && grouping.isAlwaysLoadedClientModule(referenceId)) {
|
|
388
|
+
eager.push(meta);
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
const fileName = path.basename(meta.importId).replace(/\.[^.]*$/, "");
|
|
392
|
+
const moduleId = `${RESOLVED_CLIENT_REFERENCE_MODULE_PREFIX}${meta.referenceKey}/${fileName}`;
|
|
393
|
+
referenceModules.set(moduleId, generateClientReferenceModule([meta], loaderPath));
|
|
394
|
+
moduleKeys.set(moduleId, [meta.referenceKey]);
|
|
395
|
+
meta.groupChunkId = moduleId;
|
|
396
|
+
}
|
|
397
|
+
if (eager.length > 0) referenceModules.set(RESOLVED_EAGER_CLIENT_REFERENCES_ID, generateClientReferenceModule(eager, loaderPath));
|
|
398
|
+
referenceModules.set(RESOLVED_CLIENT_REFERENCE_CHUNKS_ID, generateClientReferenceChunksModule([...moduleKeys.keys()].sort()));
|
|
399
|
+
this.emitFile({
|
|
400
|
+
type: "chunk",
|
|
401
|
+
id: CLIENT_REFERENCE_CHUNKS_ID,
|
|
402
|
+
preserveSignature: "strict"
|
|
403
|
+
});
|
|
404
|
+
options.onClientReferenceModules?.(moduleKeys);
|
|
405
|
+
return {
|
|
406
|
+
code: generateBrowserClientReferencesModule(loaderPath, eager.length > 0),
|
|
407
|
+
map: null
|
|
408
|
+
};
|
|
409
|
+
}
|
|
333
410
|
return {
|
|
334
|
-
code: generateClientReferenceLoaders(metas
|
|
411
|
+
code: generateClientReferenceLoaders(metas) + routeClientReferencesExport,
|
|
335
412
|
map: null
|
|
336
413
|
};
|
|
337
414
|
}
|
|
415
|
+
},
|
|
416
|
+
async renderChunk(code, _chunk, _outputOptions, meta) {
|
|
417
|
+
if (this.environment.config.consumer !== "server") return null;
|
|
418
|
+
if (!code.includes(asyncPlaceholder)) return null;
|
|
419
|
+
const roots = /* @__PURE__ */ new Map();
|
|
420
|
+
await Promise.all(asyncCandidates.map(async ({ index, importId }) => {
|
|
421
|
+
let id = importId;
|
|
422
|
+
if (!importId.startsWith("\0") && !path.isAbsolute(importId)) {
|
|
423
|
+
const resolved = await this.resolve(importId);
|
|
424
|
+
id = resolved && !resolved.external ? resolved.id : void 0;
|
|
425
|
+
}
|
|
426
|
+
if (id === void 0) return;
|
|
427
|
+
let list = roots.get(id);
|
|
428
|
+
if (!list) roots.set(id, list = []);
|
|
429
|
+
list.push(index);
|
|
430
|
+
}));
|
|
431
|
+
const asyncIndices = [...collectAsyncModules({
|
|
432
|
+
roots: [...roots.keys()],
|
|
433
|
+
getModuleInfo: (id) => this.getModuleInfo(id),
|
|
434
|
+
chunks: Object.values(meta.chunks),
|
|
435
|
+
declaresSideEffects: createSideEffectsDeclarationCheck()
|
|
436
|
+
})].flatMap((id) => roots.get(id)).sort((a, b) => a - b);
|
|
437
|
+
const output = new MagicString(code);
|
|
438
|
+
for (const match of code.matchAll(asyncPlaceholderRe)) output.overwrite(match.index, match.index + match[0].length, JSON.stringify(asyncIndices));
|
|
439
|
+
return omitUnusedBuildSourcemap(this.environment, magicStringTransformResult(output));
|
|
338
440
|
}
|
|
339
441
|
};
|
|
340
442
|
}
|
|
@@ -353,7 +455,7 @@ function createRouteClientReferencesFallbackPlugin() {
|
|
|
353
455
|
handler(code) {
|
|
354
456
|
if (this.environment.config.consumer !== "server") return null;
|
|
355
457
|
return {
|
|
356
|
-
code: `${code}\n${
|
|
458
|
+
code: `${code}\n${NO_ROUTE_CLIENT_REFERENCES_EXPORT}`,
|
|
357
459
|
map: null
|
|
358
460
|
};
|
|
359
461
|
}
|
|
@@ -361,4 +463,4 @@ function createRouteClientReferencesFallbackPlugin() {
|
|
|
361
463
|
};
|
|
362
464
|
}
|
|
363
465
|
//#endregion
|
|
364
|
-
export { createRouteClientReferencesFallbackPlugin, createRscClientReferenceLoadersPlugin };
|
|
466
|
+
export { RESOLVED_CLIENT_REFERENCE_CHUNKS_ID, RESOLVED_CLIENT_REFERENCE_MODULE_PREFIX, createRouteClientReferencesFallbackPlugin, createRscClientReferenceLoadersPlugin };
|
|
@@ -18,7 +18,9 @@ const VINEXT_OPTIMIZE_DEPS_EXCLUDE = Object.freeze([
|
|
|
18
18
|
const SSR_EXTERNAL_REACT_ENTRIES = Object.freeze([
|
|
19
19
|
"react",
|
|
20
20
|
"react-dom",
|
|
21
|
+
"react-dom/server",
|
|
21
22
|
"react-dom/server.edge",
|
|
23
|
+
"react-dom/static",
|
|
22
24
|
"react-dom/static.edge",
|
|
23
25
|
"react/jsx-runtime",
|
|
24
26
|
"react/jsx-dev-runtime",
|
package/dist/plugins/sass.d.ts
CHANGED
|
@@ -25,4 +25,5 @@ export declare function getTypeofWindowReplacement(environment: EnvironmentLike)
|
|
|
25
25
|
export declare function mayFoldChangeScannedImports(code: string): boolean;
|
|
26
26
|
export declare function replaceTypeofWindow(code: string, replacement: WindowType, id?: string): MagicStringTransformResult<import("magic-string").SourceMap> | null;
|
|
27
27
|
export declare function replaceConsumerEnvironmentConditions(code: string, replacements: ConsumerEnvironmentReplacements, id?: string): MagicStringTransformResult<import("magic-string").SourceMap> | null;
|
|
28
|
-
//#endregion
|
|
28
|
+
//#endregion
|
|
29
|
+
export {};
|
|
@@ -28,6 +28,6 @@ export type UseCacheCallableApi = {
|
|
|
28
28
|
transformWorkerModule(code: string, id: string, createReference: BrowserTransformOptions["createReference"]): Promise<BrowserTransformOutput["output"] | undefined>;
|
|
29
29
|
};
|
|
30
30
|
declare const PLUGIN_NAME = "vinext:server-function-directives";
|
|
31
|
-
export declare function createUseCacheCallablePlugin(options: Options): Promise<Plugin<UseCacheCallableApi
|
|
31
|
+
export declare function createUseCacheCallablePlugin(options: Options): Promise<[Plugin<UseCacheCallableApi>, Plugin]>;
|
|
32
32
|
//#endregion
|
|
33
33
|
export { PLUGIN_NAME as USE_CACHE_PLUGIN_NAME };
|