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
|
@@ -9,6 +9,7 @@ import { createHmac } from "node:crypto";
|
|
|
9
9
|
//#region src/plugins/use-cache-callable.ts
|
|
10
10
|
const PLUGIN_NAME = "vinext:server-function-directives";
|
|
11
11
|
const SOURCE_MODULE_ID_RE = /\.(?:tsx?|jsx?|mjs)(?:\?.*)?$/;
|
|
12
|
+
const NODE_MODULES_SOURCE_MODULE_ID_RE = /[\\/]node_modules[\\/].*\.(?:tsx?|jsx?|mjs)(?:\?.*)?$/;
|
|
12
13
|
const RESOLVED_VIRTUAL_MODULE_ID_RE = new RegExp(`^${String.fromCharCode(0)}`);
|
|
13
14
|
const USE_CACHE_DIRECTIVE = /^use cache(?:: ([^\s].*))?$/;
|
|
14
15
|
const USE_CACHE_DIRECTIVE_CANDIDATE = /^use cache.*$/;
|
|
@@ -40,6 +41,30 @@ function getArgumentCount(meta) {
|
|
|
40
41
|
if (node?.type !== "FunctionDeclaration" && node?.type !== "FunctionExpression" && node?.type !== "ArrowFunctionExpression") return;
|
|
41
42
|
return node.params.at(-1)?.type === "RestElement" ? void 0 : node.params.length;
|
|
42
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* `export { fn }` carries no value node, so find the exported binding's
|
|
46
|
+
* `const` initializer, which records the function's parameters. Other
|
|
47
|
+
* bindings, function declarations included, can be reassigned before the
|
|
48
|
+
* module finishes evaluating, so their arity stays unknown.
|
|
49
|
+
*/
|
|
50
|
+
function getSpecifierExportValueNodes(ast) {
|
|
51
|
+
const locals = /* @__PURE__ */ new Map();
|
|
52
|
+
for (const statement of ast.body) {
|
|
53
|
+
const declaration = statement.type === "ExportNamedDeclaration" ? statement.declaration : statement;
|
|
54
|
+
if (declaration?.type !== "VariableDeclaration" || declaration.kind !== "const") continue;
|
|
55
|
+
for (const declarator of declaration.declarations) if (declarator.id.type === "Identifier" && declarator.init) locals.set(declarator.id.name, declarator.init);
|
|
56
|
+
}
|
|
57
|
+
const values = /* @__PURE__ */ new Map();
|
|
58
|
+
for (const statement of ast.body) {
|
|
59
|
+
if (statement.type !== "ExportNamedDeclaration" || statement.declaration || statement.source) continue;
|
|
60
|
+
for (const specifier of statement.specifiers) {
|
|
61
|
+
if (specifier.local.type !== "Identifier" || specifier.exported.type !== "Identifier") continue;
|
|
62
|
+
const value = locals.get(specifier.local.name);
|
|
63
|
+
if (value) values.set(specifier.exported.name, value);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return values;
|
|
67
|
+
}
|
|
43
68
|
function acceptsSecondArgument(meta) {
|
|
44
69
|
const node = meta.valueNode;
|
|
45
70
|
if (node?.type !== "FunctionDeclaration" && node?.type !== "FunctionExpression" && node?.type !== "ArrowFunctionExpression") return true;
|
|
@@ -150,7 +175,103 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
150
175
|
secureExportName
|
|
151
176
|
};
|
|
152
177
|
}
|
|
153
|
-
|
|
178
|
+
async function transformDirectives(code, id) {
|
|
179
|
+
const secret = referenceSecret;
|
|
180
|
+
if (!manager || !secret) return;
|
|
181
|
+
if (!code.includes("use cache")) {
|
|
182
|
+
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const { ast, moduleDirective, useServerBoundary, reference, secureExportName } = await analyzeModule(manager, secret, code, id);
|
|
186
|
+
if (!(this.environment.name === "rsc")) {
|
|
187
|
+
if (useServerBoundary) {
|
|
188
|
+
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const result = transformBrowserModule(transforms, code, ast, id, moduleDirective, {
|
|
192
|
+
environmentName: this.environment.name,
|
|
193
|
+
reference,
|
|
194
|
+
secureExportName,
|
|
195
|
+
createReference: (referenceId, name) => `$$ReactClient.createServerReference(${JSON.stringify(referenceId)},$$ReactClient.callServer,undefined,${this.environment.mode === "dev" ? "$$ReactClient.findSourceMapURL" : "undefined"},${JSON.stringify(name)})`
|
|
196
|
+
});
|
|
197
|
+
if (!result) {
|
|
198
|
+
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
manager.serverReferences.replaceClaim(PLUGIN_NAME, id, {
|
|
202
|
+
...reference,
|
|
203
|
+
exportNames: result.referenceNames
|
|
204
|
+
});
|
|
205
|
+
const runtimeEnvironment = this.environment.name === "client" ? "browser" : "ssr";
|
|
206
|
+
result.output.prepend(`import * as $$ReactClient from "@vitejs/plugin-rsc/react/${runtimeEnvironment}";\n`);
|
|
207
|
+
return magicStringTransformResult(result.output, {
|
|
208
|
+
hires: "boundary",
|
|
209
|
+
source: id
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
const secureExports = /* @__PURE__ */ new Set();
|
|
213
|
+
const wrap = (value, name, directiveMatch, meta) => {
|
|
214
|
+
const variant = directiveMatch[1] ?? "";
|
|
215
|
+
const secureName = secureExportName(name);
|
|
216
|
+
secureExports.add(secureName);
|
|
217
|
+
const wrapperOptions = {
|
|
218
|
+
...getCacheWrapperOptions(meta),
|
|
219
|
+
serverReferenceId: `${reference.referenceKey}#${secureName}`
|
|
220
|
+
};
|
|
221
|
+
return `$$cacheRuntime.registerCachedFunction(${value}, ${JSON.stringify(`${id}:${name}`)}, ${JSON.stringify(variant)}, ${JSON.stringify(wrapperOptions)})`;
|
|
222
|
+
};
|
|
223
|
+
let needsReactServer = false;
|
|
224
|
+
const runtime = (value, name, directiveMatch, meta) => {
|
|
225
|
+
const cached = wrap(value, name, directiveMatch, meta);
|
|
226
|
+
const secureName = secureExportName(name);
|
|
227
|
+
needsReactServer = true;
|
|
228
|
+
return `(${secureName} = $$VinextReactServer.registerServerReference(${cached}, ${JSON.stringify(reference.referenceKey)}, ${JSON.stringify(secureName)}))`;
|
|
229
|
+
};
|
|
230
|
+
const specifierValueNodes = moduleDirective ? getSpecifierExportValueNodes(ast) : void 0;
|
|
231
|
+
const result = moduleDirective ? transforms.transformWrapExport(code, ast, {
|
|
232
|
+
filter: (name, meta) => {
|
|
233
|
+
if (hasFunctionDirective(meta, "use server") || !shouldTransformModuleExport(name, id, meta)) return false;
|
|
234
|
+
validateModuleExport(transforms, meta);
|
|
235
|
+
return true;
|
|
236
|
+
},
|
|
237
|
+
runtime: (value, name, meta) => runtime(value, name, matchUseCacheDirective(moduleDirective), {
|
|
238
|
+
...meta,
|
|
239
|
+
valueNode: meta.valueNode ?? specifierValueNodes?.get(name)
|
|
240
|
+
})
|
|
241
|
+
}) : transforms.transformHoistInlineDirective(code, ast, {
|
|
242
|
+
directive: USE_CACHE_DIRECTIVE_CANDIDATE,
|
|
243
|
+
rejectNonAsyncFunction: true,
|
|
244
|
+
hoistRuntime: true,
|
|
245
|
+
noExport: true,
|
|
246
|
+
runtime: (value, name, meta) => runtime(value, name, matchUseCacheDirective(meta.directiveMatch[0]), meta),
|
|
247
|
+
encode: (value, name) => {
|
|
248
|
+
if (name === void 0) throw new Error("vinext: inline \"use cache\" functions require @vitejs/plugin-rsc 0.5.37 or newer.");
|
|
249
|
+
const referenceId = `${reference.referenceKey}#${secureExportName(name)}`;
|
|
250
|
+
return `$$cacheRuntime.encryptCacheCaptures(${JSON.stringify(referenceId)}, ${value})`;
|
|
251
|
+
},
|
|
252
|
+
decode: (value) => value
|
|
253
|
+
});
|
|
254
|
+
if (!result.output.hasChanged()) {
|
|
255
|
+
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
manager.serverReferences.replaceClaim(PLUGIN_NAME, id, {
|
|
259
|
+
...reference,
|
|
260
|
+
exportNames: [...secureExports]
|
|
261
|
+
});
|
|
262
|
+
const importPosition = ast.body.find((node) => !("directive" in node))?.start ?? code.length;
|
|
263
|
+
result.output.prependLeft(importPosition, [
|
|
264
|
+
`import * as $$cacheRuntime from ${JSON.stringify(options.cacheRuntime)};`,
|
|
265
|
+
needsReactServer && `import * as $$VinextReactServer from "@vitejs/plugin-rsc/react/rsc/server";`,
|
|
266
|
+
secureExports.size > 0 && `let ${[...secureExports].join(",")};`
|
|
267
|
+
].filter(Boolean).join("\n") + "\n");
|
|
268
|
+
if (secureExports.size > 0) result.output.append(`\nexport { ${[...secureExports].join(",")} };\n`);
|
|
269
|
+
return magicStringTransformResult(result.output, {
|
|
270
|
+
hires: "boundary",
|
|
271
|
+
source: id
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
return [{
|
|
154
275
|
name: PLUGIN_NAME,
|
|
155
276
|
api: { async transformWorkerModule(code, id, createReference) {
|
|
156
277
|
if (!code.includes("use cache")) return;
|
|
@@ -192,100 +313,21 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
192
313
|
include: SOURCE_MODULE_ID_RE,
|
|
193
314
|
exclude: [NODE_MODULES_PATH_RE, RESOLVED_VIRTUAL_MODULE_ID_RE]
|
|
194
315
|
} },
|
|
195
|
-
|
|
196
|
-
const secret = referenceSecret;
|
|
197
|
-
if (!manager || !secret) return;
|
|
198
|
-
if (!code.includes("use cache")) {
|
|
199
|
-
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
const { ast, moduleDirective, useServerBoundary, reference, secureExportName } = await analyzeModule(manager, secret, code, id);
|
|
203
|
-
if (!(this.environment.name === "rsc")) {
|
|
204
|
-
if (useServerBoundary) {
|
|
205
|
-
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
const result = transformBrowserModule(transforms, code, ast, id, moduleDirective, {
|
|
209
|
-
environmentName: this.environment.name,
|
|
210
|
-
reference,
|
|
211
|
-
secureExportName,
|
|
212
|
-
createReference: (referenceId, name) => `$$ReactClient.createServerReference(${JSON.stringify(referenceId)},$$ReactClient.callServer,undefined,${this.environment.mode === "dev" ? "$$ReactClient.findSourceMapURL" : "undefined"},${JSON.stringify(name)})`
|
|
213
|
-
});
|
|
214
|
-
if (!result) {
|
|
215
|
-
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
manager.serverReferences.replaceClaim(PLUGIN_NAME, id, {
|
|
219
|
-
...reference,
|
|
220
|
-
exportNames: result.referenceNames
|
|
221
|
-
});
|
|
222
|
-
const runtimeEnvironment = this.environment.name === "client" ? "browser" : "ssr";
|
|
223
|
-
result.output.prepend(`import * as $$ReactClient from "@vitejs/plugin-rsc/react/${runtimeEnvironment}";\n`);
|
|
224
|
-
return magicStringTransformResult(result.output, {
|
|
225
|
-
hires: "boundary",
|
|
226
|
-
source: id
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
const secureExports = /* @__PURE__ */ new Set();
|
|
230
|
-
const wrap = (value, name, directiveMatch, meta) => {
|
|
231
|
-
const variant = directiveMatch[1] ?? "";
|
|
232
|
-
const secureName = secureExportName(name);
|
|
233
|
-
secureExports.add(secureName);
|
|
234
|
-
const wrapperOptions = {
|
|
235
|
-
...getCacheWrapperOptions(meta),
|
|
236
|
-
serverReferenceId: `${reference.referenceKey}#${secureName}`
|
|
237
|
-
};
|
|
238
|
-
return `$$cacheRuntime.registerCachedFunction(${value}, ${JSON.stringify(`${id}:${name}`)}, ${JSON.stringify(variant)}, ${JSON.stringify(wrapperOptions)})`;
|
|
239
|
-
};
|
|
240
|
-
let needsReactServer = false;
|
|
241
|
-
const runtime = (value, name, directiveMatch, meta) => {
|
|
242
|
-
const cached = wrap(value, name, directiveMatch, meta);
|
|
243
|
-
const secureName = secureExportName(name);
|
|
244
|
-
needsReactServer = true;
|
|
245
|
-
return `(${secureName} = $$VinextReactServer.registerServerReference(${cached}, ${JSON.stringify(reference.referenceKey)}, ${JSON.stringify(secureName)}))`;
|
|
246
|
-
};
|
|
247
|
-
const result = moduleDirective ? transforms.transformWrapExport(code, ast, {
|
|
248
|
-
filter: (name, meta) => {
|
|
249
|
-
if (hasFunctionDirective(meta, "use server") || !shouldTransformModuleExport(name, id, meta)) return false;
|
|
250
|
-
validateModuleExport(transforms, meta);
|
|
251
|
-
return true;
|
|
252
|
-
},
|
|
253
|
-
runtime: (value, name, meta) => runtime(value, name, matchUseCacheDirective(moduleDirective), meta)
|
|
254
|
-
}) : transforms.transformHoistInlineDirective(code, ast, {
|
|
255
|
-
directive: USE_CACHE_DIRECTIVE_CANDIDATE,
|
|
256
|
-
rejectNonAsyncFunction: true,
|
|
257
|
-
hoistRuntime: true,
|
|
258
|
-
noExport: true,
|
|
259
|
-
runtime: (value, name, meta) => runtime(value, name, matchUseCacheDirective(meta.directiveMatch[0]), meta),
|
|
260
|
-
encode: (value, name) => {
|
|
261
|
-
if (name === void 0) throw new Error("vinext: inline \"use cache\" functions require @vitejs/plugin-rsc 0.5.37 or newer.");
|
|
262
|
-
const referenceId = `${reference.referenceKey}#${secureExportName(name)}`;
|
|
263
|
-
return `$$cacheRuntime.encryptCacheCaptures(${JSON.stringify(referenceId)}, ${value})`;
|
|
264
|
-
},
|
|
265
|
-
decode: (value) => value
|
|
266
|
-
});
|
|
267
|
-
if (!result.output.hasChanged()) {
|
|
268
|
-
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
manager.serverReferences.replaceClaim(PLUGIN_NAME, id, {
|
|
272
|
-
...reference,
|
|
273
|
-
exportNames: [...secureExports]
|
|
274
|
-
});
|
|
275
|
-
const importPosition = ast.body.find((node) => !("directive" in node))?.start ?? code.length;
|
|
276
|
-
result.output.prependLeft(importPosition, [
|
|
277
|
-
`import * as $$cacheRuntime from ${JSON.stringify(options.cacheRuntime)};`,
|
|
278
|
-
needsReactServer && `import * as $$VinextReactServer from "@vitejs/plugin-rsc/react/rsc/server";`,
|
|
279
|
-
secureExports.size > 0 && `let ${[...secureExports].join(",")};`
|
|
280
|
-
].filter(Boolean).join("\n") + "\n");
|
|
281
|
-
if (secureExports.size > 0) result.output.append(`\nexport { ${[...secureExports].join(",")} };\n`);
|
|
282
|
-
return magicStringTransformResult(result.output, {
|
|
283
|
-
hires: "boundary",
|
|
284
|
-
source: id
|
|
285
|
-
});
|
|
286
|
-
}
|
|
316
|
+
handler: transformDirectives
|
|
287
317
|
}
|
|
288
|
-
}
|
|
318
|
+
}, {
|
|
319
|
+
name: `${PLUGIN_NAME}:node-modules`,
|
|
320
|
+
transform: {
|
|
321
|
+
filter: {
|
|
322
|
+
id: {
|
|
323
|
+
include: NODE_MODULES_SOURCE_MODULE_ID_RE,
|
|
324
|
+
exclude: RESOLVED_VIRTUAL_MODULE_ID_RE
|
|
325
|
+
},
|
|
326
|
+
code: "use cache"
|
|
327
|
+
},
|
|
328
|
+
handler: transformDirectives
|
|
329
|
+
}
|
|
330
|
+
}];
|
|
289
331
|
}
|
|
290
332
|
//#endregion
|
|
291
333
|
export { PLUGIN_NAME as USE_CACHE_PLUGIN_NAME, createUseCacheCallablePlugin };
|
|
@@ -42,7 +42,7 @@ function createWorkerImageImportsPlugin(options = {}) {
|
|
|
42
42
|
let dimensions = dimensionCache.get(imagePath);
|
|
43
43
|
if (!dimensions) {
|
|
44
44
|
try {
|
|
45
|
-
const { imageSize } = await import("../deps/.pnpm/image-size@2.0.
|
|
45
|
+
const { imageSize } = await import("../deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js");
|
|
46
46
|
const result = imageSize(fs.readFileSync(imagePath));
|
|
47
47
|
dimensions = {
|
|
48
48
|
width: result.width ?? 0,
|
|
@@ -44,6 +44,30 @@ type InterceptingRoute = {
|
|
|
44
44
|
notFoundBranchSegments?: string[];
|
|
45
45
|
/** Tree position relative to the normalized interception branch. */
|
|
46
46
|
notFoundTreePosition?: number | null;
|
|
47
|
+
/** Nearest forbidden convention inside the interception branch. */
|
|
48
|
+
forbiddenPath?: string | null;
|
|
49
|
+
/** Tree position relative to the normalized interception branch. */
|
|
50
|
+
forbiddenTreePosition?: number | null;
|
|
51
|
+
/** Nearest unauthorized convention inside the interception branch. */
|
|
52
|
+
unauthorizedPath?: string | null;
|
|
53
|
+
/** Tree position relative to the normalized interception branch. */
|
|
54
|
+
unauthorizedTreePosition?: number | null;
|
|
55
|
+
/** Every not-found convention inside the interception branch, outermost first. */
|
|
56
|
+
notFoundPaths?: string[];
|
|
57
|
+
/** Tree positions for notFoundPaths in the normalized interception branch. */
|
|
58
|
+
notFoundTreePositions?: number[];
|
|
59
|
+
/** Every forbidden convention inside the interception branch, outermost first. */
|
|
60
|
+
forbiddenPaths?: string[];
|
|
61
|
+
/** Tree positions for forbiddenPaths in the normalized interception branch. */
|
|
62
|
+
forbiddenTreePositions?: number[];
|
|
63
|
+
/** Every unauthorized convention inside the interception branch, outermost first. */
|
|
64
|
+
unauthorizedPaths?: string[];
|
|
65
|
+
/** Tree positions for unauthorizedPaths in the normalized interception branch. */
|
|
66
|
+
unauthorizedTreePositions?: number[];
|
|
67
|
+
/** Every error convention inside the interception branch, outermost first. */
|
|
68
|
+
errorPaths?: string[];
|
|
69
|
+
/** Tree positions for errorPaths in the normalized interception branch. */
|
|
70
|
+
errorTreePositions?: number[];
|
|
47
71
|
/** Parameter names for dynamic segments */
|
|
48
72
|
params: string[];
|
|
49
73
|
/**
|
|
@@ -89,6 +113,10 @@ type ParallelSlot = {
|
|
|
89
113
|
notFoundPath?: string | null;
|
|
90
114
|
/** Tree position of that convention relative to the slot root. */
|
|
91
115
|
notFoundTreePosition?: number | null;
|
|
116
|
+
/** Every not-found convention from the slot root to its active page, outermost first. */
|
|
117
|
+
notFoundPaths?: string[];
|
|
118
|
+
/** Slot-root-relative tree positions aligned with notFoundPaths. */
|
|
119
|
+
notFoundTreePositions?: number[];
|
|
92
120
|
/** Intercepting routes within this slot */
|
|
93
121
|
interceptingRoutes: InterceptingRoute[];
|
|
94
122
|
/**
|
|
@@ -191,6 +219,18 @@ export type AppRoute = {
|
|
|
191
219
|
unauthorizedTreePosition?: number | null;
|
|
192
220
|
/** Unauthorized component paths per layout level (aligned with layouts array). */
|
|
193
221
|
unauthorizedPaths: (string | null)[];
|
|
222
|
+
/**
|
|
223
|
+
* Not-found, forbidden and unauthorized component paths for every segment
|
|
224
|
+
* from app/ to the route's directory, including segments without a layout,
|
|
225
|
+
* aligned with the matching tree positions. A layout's notFound() is caught
|
|
226
|
+
* by the deepest of these above the layout's own segment.
|
|
227
|
+
*/
|
|
228
|
+
segmentNotFoundPaths?: string[];
|
|
229
|
+
segmentNotFoundTreePositions?: number[];
|
|
230
|
+
segmentForbiddenPaths?: string[];
|
|
231
|
+
segmentForbiddenTreePositions?: number[];
|
|
232
|
+
segmentUnauthorizedPaths?: string[];
|
|
233
|
+
segmentUnauthorizedTreePositions?: number[];
|
|
194
234
|
/**
|
|
195
235
|
* Filesystem segments from app/ root to the route's directory.
|
|
196
236
|
* Includes route groups and dynamic segments (as template strings like "[id]").
|
|
@@ -371,6 +411,12 @@ export declare function buildAppRouteGraph(appDir: string, matcher: ValidFileMat
|
|
|
371
411
|
routes: AppRouteGraphRoute[];
|
|
372
412
|
routeManifest: RouteManifest;
|
|
373
413
|
}>;
|
|
414
|
+
/**
|
|
415
|
+
* The tree position of a slot's active page relative to the slot root, in the
|
|
416
|
+
* coordinates of configLayoutTreePositions. Route groups count, unlike in
|
|
417
|
+
* `routeSegments`, since each is its own loader-tree segment.
|
|
418
|
+
*/
|
|
419
|
+
export declare function findSlotPageTreePosition(slot: Pick<ParallelSlot, "ownerDir" | "pagePath">): number | null;
|
|
374
420
|
export declare function computeRootParamNames(routeSegments: readonly string[], layoutTreePositions: readonly number[]): string[];
|
|
375
421
|
export declare function patternsStructurallyEquivalent(a: readonly string[], b: readonly string[]): boolean;
|
|
376
422
|
/**
|