@qzsy/vinext 0.1.7
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/LICENSE +21 -0
- package/README.md +773 -0
- package/dist/build/assets-ignore.d.ts +32 -0
- package/dist/build/assets-ignore.js +48 -0
- package/dist/build/clean-output.d.ts +13 -0
- package/dist/build/clean-output.js +34 -0
- package/dist/build/client-build-config.d.ts +171 -0
- package/dist/build/client-build-config.js +270 -0
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +213 -0
- package/dist/build/google-fonts/build-url.d.ts +9 -0
- package/dist/build/google-fonts/build-url.js +28 -0
- package/dist/build/google-fonts/fallback-metrics-data.js +14029 -0
- package/dist/build/google-fonts/fallback-metrics.d.ts +12 -0
- package/dist/build/google-fonts/fallback-metrics.js +44 -0
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +16 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +28 -0
- package/dist/build/google-fonts/font-data.js +24983 -0
- package/dist/build/google-fonts/font-metadata.d.ts +16 -0
- package/dist/build/google-fonts/font-metadata.js +5 -0
- package/dist/build/google-fonts/get-axes.d.ts +6 -0
- package/dist/build/google-fonts/get-axes.js +37 -0
- package/dist/build/google-fonts/sort-variants.d.ts +4 -0
- package/dist/build/google-fonts/sort-variants.js +12 -0
- package/dist/build/google-fonts/validate.d.ts +27 -0
- package/dist/build/google-fonts/validate.js +54 -0
- package/dist/build/inline-css.d.ts +6 -0
- package/dist/build/inline-css.js +48 -0
- package/dist/build/layout-classification-types.d.ts +61 -0
- package/dist/build/layout-classification-types.js +1 -0
- package/dist/build/layout-classification.d.ts +59 -0
- package/dist/build/layout-classification.js +98 -0
- package/dist/build/next-client-runtime-manifests.d.ts +14 -0
- package/dist/build/next-client-runtime-manifests.js +39 -0
- package/dist/build/nitro-route-rules.d.ts +49 -0
- package/dist/build/nitro-route-rules.js +79 -0
- package/dist/build/precompress.d.ts +27 -0
- package/dist/build/precompress.js +110 -0
- package/dist/build/prerender.d.ts +209 -0
- package/dist/build/prerender.js +932 -0
- package/dist/build/report.d.ts +132 -0
- package/dist/build/report.js +504 -0
- package/dist/build/route-classification-injector.d.ts +34 -0
- package/dist/build/route-classification-injector.js +59 -0
- package/dist/build/route-classification-manifest.d.ts +52 -0
- package/dist/build/route-classification-manifest.js +143 -0
- package/dist/build/run-prerender.d.ts +61 -0
- package/dist/build/run-prerender.js +224 -0
- package/dist/build/server-manifest.d.ts +18 -0
- package/dist/build/server-manifest.js +22 -0
- package/dist/build/ssr-manifest.d.ts +18 -0
- package/dist/build/ssr-manifest.js +69 -0
- package/dist/build/standalone.d.ts +31 -0
- package/dist/build/standalone.js +203 -0
- package/dist/build/static-export.d.ts +55 -0
- package/dist/build/static-export.js +60 -0
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/cache.d.ts +2 -0
- package/dist/cache.js +2 -0
- package/dist/check.d.ts +87 -0
- package/dist/check.js +1037 -0
- package/dist/cli-args.d.ts +33 -0
- package/dist/cli-args.js +124 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +744 -0
- package/dist/client/app-nav-failure-handler.d.ts +8 -0
- package/dist/client/app-nav-failure-handler.js +44 -0
- package/dist/client/empty-module.d.ts +1 -0
- package/dist/client/empty-module.js +1 -0
- package/dist/client/instrumentation-client-inject.d.ts +33 -0
- package/dist/client/instrumentation-client-inject.js +55 -0
- package/dist/client/instrumentation-client-state.d.ts +9 -0
- package/dist/client/instrumentation-client-state.js +17 -0
- package/dist/client/instrumentation-client.d.ts +7 -0
- package/dist/client/instrumentation-client.js +6 -0
- package/dist/client/navigation-runtime.d.ts +70 -0
- package/dist/client/navigation-runtime.js +169 -0
- package/dist/client/pages-router-link-navigation.d.ts +61 -0
- package/dist/client/pages-router-link-navigation.js +42 -0
- package/dist/client/validate-module-path.d.ts +17 -0
- package/dist/client/validate-module-path.js +24 -0
- package/dist/client/vinext-next-data.d.ts +44 -0
- package/dist/client/vinext-next-data.js +50 -0
- package/dist/client/window-next.d.ts +168 -0
- package/dist/client/window-next.js +57 -0
- package/dist/cloudflare/index.d.ts +3 -0
- package/dist/cloudflare/index.js +3 -0
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +102 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.d.ts +126 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.js +435 -0
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +82 -0
- package/dist/cloudflare/tpr.js +558 -0
- package/dist/config/config-matchers.d.ts +257 -0
- package/dist/config/config-matchers.js +1046 -0
- package/dist/config/dotenv.d.ts +56 -0
- package/dist/config/dotenv.js +88 -0
- package/dist/config/next-config.d.ts +540 -0
- package/dist/config/next-config.js +1050 -0
- package/dist/config/tsconfig-paths.d.ts +21 -0
- package/dist/config/tsconfig-paths.js +157 -0
- package/dist/deploy.d.ts +190 -0
- package/dist/deploy.js +1033 -0
- package/dist/entries/app-browser-entry.d.ts +29 -0
- package/dist/entries/app-browser-entry.js +83 -0
- package/dist/entries/app-rsc-entry.d.ts +81 -0
- package/dist/entries/app-rsc-entry.js +943 -0
- package/dist/entries/app-rsc-manifest.d.ts +53 -0
- package/dist/entries/app-rsc-manifest.js +294 -0
- package/dist/entries/app-ssr-entry.d.ts +15 -0
- package/dist/entries/app-ssr-entry.js +24 -0
- package/dist/entries/pages-client-entry.d.ts +11 -0
- package/dist/entries/pages-client-entry.js +204 -0
- package/dist/entries/pages-entry-helpers.d.ts +2 -0
- package/dist/entries/pages-entry-helpers.js +2 -0
- package/dist/entries/pages-server-entry.d.ts +11 -0
- package/dist/entries/pages-server-entry.js +398 -0
- package/dist/entries/runtime-entry-module.d.ts +25 -0
- package/dist/entries/runtime-entry-module.js +46 -0
- package/dist/index.d.ts +115 -0
- package/dist/index.js +2661 -0
- package/dist/init.d.ts +69 -0
- package/dist/init.js +253 -0
- package/dist/plugins/ast-utils.d.ts +20 -0
- package/dist/plugins/ast-utils.js +78 -0
- package/dist/plugins/async-hooks-stub.d.ts +18 -0
- package/dist/plugins/async-hooks-stub.js +40 -0
- package/dist/plugins/client-reference-dedup.d.ts +35 -0
- package/dist/plugins/client-reference-dedup.js +189 -0
- package/dist/plugins/css-data-url.d.ts +6 -0
- package/dist/plugins/css-data-url.js +83 -0
- package/dist/plugins/dynamic-preload-metadata.d.ts +13 -0
- package/dist/plugins/dynamic-preload-metadata.js +413 -0
- package/dist/plugins/extensionless-dynamic-import.d.ts +6 -0
- package/dist/plugins/extensionless-dynamic-import.js +155 -0
- package/dist/plugins/fonts.d.ts +95 -0
- package/dist/plugins/fonts.js +711 -0
- package/dist/plugins/import-meta-url.d.ts +16 -0
- package/dist/plugins/import-meta-url.js +353 -0
- package/dist/plugins/instrumentation-client.d.ts +6 -0
- package/dist/plugins/instrumentation-client.js +27 -0
- package/dist/plugins/middleware-export-validation.d.ts +5 -0
- package/dist/plugins/middleware-export-validation.js +36 -0
- package/dist/plugins/middleware-server-only.d.ts +53 -0
- package/dist/plugins/middleware-server-only.js +90 -0
- package/dist/plugins/og-asset-ownership.d.ts +27 -0
- package/dist/plugins/og-asset-ownership.js +285 -0
- package/dist/plugins/og-assets.d.ts +50 -0
- package/dist/plugins/og-assets.js +229 -0
- package/dist/plugins/optimize-imports.d.ts +42 -0
- package/dist/plugins/optimize-imports.js +587 -0
- package/dist/plugins/postcss.d.ts +26 -0
- package/dist/plugins/postcss.js +96 -0
- package/dist/plugins/remove-console.d.ts +21 -0
- package/dist/plugins/remove-console.js +177 -0
- package/dist/plugins/require-context.d.ts +6 -0
- package/dist/plugins/require-context.js +185 -0
- package/dist/plugins/rsc-client-reference-loaders.d.ts +6 -0
- package/dist/plugins/rsc-client-reference-loaders.js +46 -0
- package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
- package/dist/plugins/rsc-client-shim-excludes.js +35 -0
- package/dist/plugins/sass.d.ts +62 -0
- package/dist/plugins/sass.js +268 -0
- package/dist/plugins/server-externals-manifest.d.ts +26 -0
- package/dist/plugins/server-externals-manifest.js +81 -0
- package/dist/plugins/strip-server-exports.d.ts +21 -0
- package/dist/plugins/strip-server-exports.js +519 -0
- package/dist/plugins/typeof-window.d.ts +14 -0
- package/dist/plugins/typeof-window.js +150 -0
- package/dist/plugins/wasm-module-import.d.ts +15 -0
- package/dist/plugins/wasm-module-import.js +50 -0
- package/dist/routing/app-route-graph.d.ts +336 -0
- package/dist/routing/app-route-graph.js +1518 -0
- package/dist/routing/app-router.d.ts +30 -0
- package/dist/routing/app-router.js +59 -0
- package/dist/routing/file-matcher.d.ts +60 -0
- package/dist/routing/file-matcher.js +147 -0
- package/dist/routing/pages-router.d.ts +48 -0
- package/dist/routing/pages-router.js +163 -0
- package/dist/routing/route-matching.d.ts +27 -0
- package/dist/routing/route-matching.js +42 -0
- package/dist/routing/route-pattern.d.ts +64 -0
- package/dist/routing/route-pattern.js +165 -0
- package/dist/routing/route-trie.d.ts +67 -0
- package/dist/routing/route-trie.js +143 -0
- package/dist/routing/route-validation.d.ts +10 -0
- package/dist/routing/route-validation.js +101 -0
- package/dist/routing/utils.d.ts +117 -0
- package/dist/routing/utils.js +242 -0
- package/dist/server/accept-encoding.d.ts +29 -0
- package/dist/server/accept-encoding.js +95 -0
- package/dist/server/api-handler.d.ts +17 -0
- package/dist/server/api-handler.js +276 -0
- package/dist/server/app-action-request.d.ts +4 -0
- package/dist/server/app-action-request.js +9 -0
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-bfcache-identity.d.ts +36 -0
- package/dist/server/app-bfcache-identity.js +156 -0
- package/dist/server/app-browser-action-result.d.ts +64 -0
- package/dist/server/app-browser-action-result.js +111 -0
- package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
- package/dist/server/app-browser-client-reuse-manifest.js +101 -0
- package/dist/server/app-browser-entry.d.ts +1 -0
- package/dist/server/app-browser-entry.js +1087 -0
- package/dist/server/app-browser-error.d.ts +13 -0
- package/dist/server/app-browser-error.js +52 -0
- package/dist/server/app-browser-history-controller.d.ts +104 -0
- package/dist/server/app-browser-history-controller.js +210 -0
- package/dist/server/app-browser-hydration.d.ts +32 -0
- package/dist/server/app-browser-hydration.js +29 -0
- package/dist/server/app-browser-interception-context.d.ts +24 -0
- package/dist/server/app-browser-interception-context.js +43 -0
- package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
- package/dist/server/app-browser-mpa-navigation.js +42 -0
- package/dist/server/app-browser-navigation-controller.d.ts +109 -0
- package/dist/server/app-browser-navigation-controller.js +465 -0
- package/dist/server/app-browser-popstate.d.ts +26 -0
- package/dist/server/app-browser-popstate.js +44 -0
- package/dist/server/app-browser-rsc-redirect.d.ts +38 -0
- package/dist/server/app-browser-rsc-redirect.js +64 -0
- package/dist/server/app-browser-server-action-client.d.ts +32 -0
- package/dist/server/app-browser-server-action-client.js +128 -0
- package/dist/server/app-browser-server-action-navigation.d.ts +6 -0
- package/dist/server/app-browser-server-action-navigation.js +9 -0
- package/dist/server/app-browser-state.d.ts +140 -0
- package/dist/server/app-browser-state.js +315 -0
- package/dist/server/app-browser-stream.d.ts +28 -0
- package/dist/server/app-browser-stream.js +122 -0
- package/dist/server/app-browser-visible-commit.d.ts +78 -0
- package/dist/server/app-browser-visible-commit.js +241 -0
- package/dist/server/app-client-reference-preloader.d.ts +14 -0
- package/dist/server/app-client-reference-preloader.js +44 -0
- package/dist/server/app-elements-wire.d.ts +192 -0
- package/dist/server/app-elements-wire.js +443 -0
- package/dist/server/app-elements.d.ts +9 -0
- package/dist/server/app-elements.js +18 -0
- package/dist/server/app-fallback-renderer.d.ts +89 -0
- package/dist/server/app-fallback-renderer.js +136 -0
- package/dist/server/app-history-state.d.ts +85 -0
- package/dist/server/app-history-state.js +223 -0
- package/dist/server/app-hook-warning-suppression.d.ts +6 -0
- package/dist/server/app-hook-warning-suppression.js +10 -0
- package/dist/server/app-inline-css-client.d.ts +6 -0
- package/dist/server/app-inline-css-client.js +35 -0
- package/dist/server/app-interception-context-header.d.ts +32 -0
- package/dist/server/app-interception-context-header.js +42 -0
- package/dist/server/app-layout-param-observation.d.ts +43 -0
- package/dist/server/app-layout-param-observation.js +168 -0
- package/dist/server/app-middleware.d.ts +46 -0
- package/dist/server/app-middleware.js +168 -0
- package/dist/server/app-mounted-slots-header.d.ts +35 -0
- package/dist/server/app-mounted-slots-header.js +58 -0
- package/dist/server/app-optimistic-routing.d.ts +53 -0
- package/dist/server/app-optimistic-routing.js +227 -0
- package/dist/server/app-page-boundary-render.d.ts +85 -0
- package/dist/server/app-page-boundary-render.js +305 -0
- package/dist/server/app-page-boundary.d.ts +102 -0
- package/dist/server/app-page-boundary.js +120 -0
- package/dist/server/app-page-cache-finalizer.d.ts +62 -0
- package/dist/server/app-page-cache-finalizer.js +122 -0
- package/dist/server/app-page-cache-render.d.ts +53 -0
- package/dist/server/app-page-cache-render.js +91 -0
- package/dist/server/app-page-cache.d.ts +83 -0
- package/dist/server/app-page-cache.js +272 -0
- package/dist/server/app-page-dispatch.d.ts +223 -0
- package/dist/server/app-page-dispatch.js +610 -0
- package/dist/server/app-page-element-builder.d.ts +96 -0
- package/dist/server/app-page-element-builder.js +205 -0
- package/dist/server/app-page-execution.d.ts +138 -0
- package/dist/server/app-page-execution.js +328 -0
- package/dist/server/app-page-head.d.ts +65 -0
- package/dist/server/app-page-head.js +228 -0
- package/dist/server/app-page-method.d.ts +15 -0
- package/dist/server/app-page-method.js +25 -0
- package/dist/server/app-page-params.d.ts +8 -0
- package/dist/server/app-page-params.js +39 -0
- package/dist/server/app-page-ppr-runtime.d.ts +7 -0
- package/dist/server/app-page-ppr-runtime.js +70 -0
- package/dist/server/app-page-probe.d.ts +134 -0
- package/dist/server/app-page-probe.js +276 -0
- package/dist/server/app-page-render-identity.d.ts +21 -0
- package/dist/server/app-page-render-identity.js +40 -0
- package/dist/server/app-page-render-observation.d.ts +36 -0
- package/dist/server/app-page-render-observation.js +82 -0
- package/dist/server/app-page-render.d.ts +111 -0
- package/dist/server/app-page-render.js +602 -0
- package/dist/server/app-page-request.d.ts +137 -0
- package/dist/server/app-page-request.js +216 -0
- package/dist/server/app-page-response.d.ts +68 -0
- package/dist/server/app-page-response.js +120 -0
- package/dist/server/app-page-route-wiring.d.ts +151 -0
- package/dist/server/app-page-route-wiring.js +452 -0
- package/dist/server/app-page-search-params-observation.d.ts +10 -0
- package/dist/server/app-page-search-params-observation.js +20 -0
- package/dist/server/app-page-segment-state.d.ts +9 -0
- package/dist/server/app-page-segment-state.js +80 -0
- package/dist/server/app-page-stream.d.ts +151 -0
- package/dist/server/app-page-stream.js +143 -0
- package/dist/server/app-pages-bridge.d.ts +63 -0
- package/dist/server/app-pages-bridge.js +63 -0
- package/dist/server/app-post-middleware-context.d.ts +15 -0
- package/dist/server/app-post-middleware-context.js +26 -0
- package/dist/server/app-ppr-fallback-shell-render.d.ts +18 -0
- package/dist/server/app-ppr-fallback-shell-render.js +26 -0
- package/dist/server/app-ppr-fallback-shell.d.ts +33 -0
- package/dist/server/app-ppr-fallback-shell.js +89 -0
- package/dist/server/app-prerender-endpoints.d.ts +18 -0
- package/dist/server/app-prerender-endpoints.js +94 -0
- package/dist/server/app-prerender-static-params.d.ts +30 -0
- package/dist/server/app-prerender-static-params.js +81 -0
- package/dist/server/app-render-dependency.d.ts +14 -0
- package/dist/server/app-render-dependency.js +41 -0
- package/dist/server/app-request-context.d.ts +20 -0
- package/dist/server/app-request-context.js +29 -0
- package/dist/server/app-route-handler-cache.d.ts +46 -0
- package/dist/server/app-route-handler-cache.js +78 -0
- package/dist/server/app-route-handler-dispatch.d.ts +49 -0
- package/dist/server/app-route-handler-dispatch.js +163 -0
- package/dist/server/app-route-handler-execution.d.ts +86 -0
- package/dist/server/app-route-handler-execution.js +128 -0
- package/dist/server/app-route-handler-policy.d.ts +55 -0
- package/dist/server/app-route-handler-policy.js +58 -0
- package/dist/server/app-route-handler-response.d.ts +28 -0
- package/dist/server/app-route-handler-response.js +145 -0
- package/dist/server/app-route-handler-runtime.d.ts +39 -0
- package/dist/server/app-route-handler-runtime.js +250 -0
- package/dist/server/app-route-module-loader.d.ts +91 -0
- package/dist/server/app-route-module-loader.js +83 -0
- package/dist/server/app-router-entry.d.ts +13 -0
- package/dist/server/app-router-entry.js +49 -0
- package/dist/server/app-rsc-cache-busting.d.ts +64 -0
- package/dist/server/app-rsc-cache-busting.js +206 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +8 -0
- package/dist/server/app-rsc-embedded-chunks.js +32 -0
- package/dist/server/app-rsc-error-handler.d.ts +20 -0
- package/dist/server/app-rsc-error-handler.js +28 -0
- package/dist/server/app-rsc-errors.d.ts +40 -0
- package/dist/server/app-rsc-errors.js +60 -0
- package/dist/server/app-rsc-handler.d.ts +201 -0
- package/dist/server/app-rsc-handler.js +538 -0
- package/dist/server/app-rsc-render-mode.d.ts +11 -0
- package/dist/server/app-rsc-render-mode.js +25 -0
- package/dist/server/app-rsc-request-normalization.d.ts +48 -0
- package/dist/server/app-rsc-request-normalization.js +75 -0
- package/dist/server/app-rsc-response-finalizer.d.ts +37 -0
- package/dist/server/app-rsc-response-finalizer.js +54 -0
- package/dist/server/app-rsc-route-matching.d.ts +93 -0
- package/dist/server/app-rsc-route-matching.js +134 -0
- package/dist/server/app-segment-config.d.ts +46 -0
- package/dist/server/app-segment-config.js +113 -0
- package/dist/server/app-server-action-execution.d.ts +219 -0
- package/dist/server/app-server-action-execution.js +767 -0
- package/dist/server/app-ssr-entry.d.ts +52 -0
- package/dist/server/app-ssr-entry.js +295 -0
- package/dist/server/app-ssr-error-meta.d.ts +13 -0
- package/dist/server/app-ssr-error-meta.js +48 -0
- package/dist/server/app-ssr-router-instance.d.ts +6 -0
- package/dist/server/app-ssr-router-instance.js +24 -0
- package/dist/server/app-ssr-stream.d.ts +60 -0
- package/dist/server/app-ssr-stream.js +408 -0
- package/dist/server/app-static-generation.d.ts +15 -0
- package/dist/server/app-static-generation.js +19 -0
- package/dist/server/app-visited-response-cache.d.ts +23 -0
- package/dist/server/app-visited-response-cache.js +19 -0
- package/dist/server/artifact-compatibility.d.ts +54 -0
- package/dist/server/artifact-compatibility.js +91 -0
- package/dist/server/before-interactive-head.d.ts +17 -0
- package/dist/server/before-interactive-head.js +35 -0
- package/dist/server/cache-control.d.ts +37 -0
- package/dist/server/cache-control.js +56 -0
- package/dist/server/cache-headers.d.ts +6 -0
- package/dist/server/cache-headers.js +17 -0
- package/dist/server/cache-proof.d.ts +364 -0
- package/dist/server/cache-proof.js +794 -0
- package/dist/server/client-reuse-manifest.d.ts +104 -0
- package/dist/server/client-reuse-manifest.js +209 -0
- package/dist/server/client-trace-metadata.d.ts +30 -0
- package/dist/server/client-trace-metadata.js +81 -0
- package/dist/server/cookie-utils.d.ts +12 -0
- package/dist/server/cookie-utils.js +18 -0
- package/dist/server/csp.d.ts +10 -0
- package/dist/server/csp.js +41 -0
- package/dist/server/default-global-error-module.d.ts +19 -0
- package/dist/server/default-global-error-module.js +18 -0
- package/dist/server/default-not-found-module.d.ts +19 -0
- package/dist/server/default-not-found-module.js +18 -0
- package/dist/server/defer-until-stream-consumed.d.ts +7 -0
- package/dist/server/defer-until-stream-consumed.js +34 -0
- package/dist/server/dev-error-overlay-store.d.ts +39 -0
- package/dist/server/dev-error-overlay-store.js +86 -0
- package/dist/server/dev-error-overlay.d.ts +51 -0
- package/dist/server/dev-error-overlay.js +1341 -0
- package/dist/server/dev-initial-server-error.d.ts +9 -0
- package/dist/server/dev-initial-server-error.js +26 -0
- package/dist/server/dev-lockfile.d.ts +109 -0
- package/dist/server/dev-lockfile.js +179 -0
- package/dist/server/dev-module-runner.d.ts +30 -0
- package/dist/server/dev-module-runner.js +91 -0
- package/dist/server/dev-origin-check.d.ts +62 -0
- package/dist/server/dev-origin-check.js +156 -0
- package/dist/server/dev-route-files.d.ts +6 -0
- package/dist/server/dev-route-files.js +71 -0
- package/dist/server/dev-server.d.ts +58 -0
- package/dist/server/dev-server.js +1114 -0
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
- package/dist/server/dev-stack-sourcemap.d.ts +43 -0
- package/dist/server/dev-stack-sourcemap.js +443 -0
- package/dist/server/document-initial-head.d.ts +6 -0
- package/dist/server/document-initial-head.js +33 -0
- package/dist/server/edge-api-runtime.d.ts +4 -0
- package/dist/server/edge-api-runtime.js +6 -0
- package/dist/server/file-based-metadata.d.ts +29 -0
- package/dist/server/file-based-metadata.js +401 -0
- package/dist/server/headers.d.ts +114 -0
- package/dist/server/headers.js +136 -0
- package/dist/server/html.d.ts +28 -0
- package/dist/server/html.js +41 -0
- package/dist/server/http-error-responses.d.ts +91 -0
- package/dist/server/http-error-responses.js +105 -0
- package/dist/server/hybrid-route-priority.d.ts +22 -0
- package/dist/server/hybrid-route-priority.js +33 -0
- package/dist/server/image-optimization.d.ts +130 -0
- package/dist/server/image-optimization.js +247 -0
- package/dist/server/implicit-tags.d.ts +6 -0
- package/dist/server/implicit-tags.js +44 -0
- package/dist/server/instrumentation-runtime.d.ts +49 -0
- package/dist/server/instrumentation-runtime.js +35 -0
- package/dist/server/instrumentation.d.ts +85 -0
- package/dist/server/instrumentation.js +130 -0
- package/dist/server/isr-cache.d.ts +127 -0
- package/dist/server/isr-cache.js +282 -0
- package/dist/server/isr-decision.d.ts +79 -0
- package/dist/server/isr-decision.js +70 -0
- package/dist/server/metadata-route-build-data.d.ts +24 -0
- package/dist/server/metadata-route-build-data.js +148 -0
- package/dist/server/metadata-route-response.d.ts +16 -0
- package/dist/server/metadata-route-response.js +205 -0
- package/dist/server/metadata-routes.d.ts +139 -0
- package/dist/server/metadata-routes.js +433 -0
- package/dist/server/middleware-matcher.d.ts +14 -0
- package/dist/server/middleware-matcher.js +111 -0
- package/dist/server/middleware-request-headers.d.ts +11 -0
- package/dist/server/middleware-request-headers.js +65 -0
- package/dist/server/middleware-response-headers.d.ts +12 -0
- package/dist/server/middleware-response-headers.js +42 -0
- package/dist/server/middleware-runtime.d.ts +67 -0
- package/dist/server/middleware-runtime.js +240 -0
- package/dist/server/middleware.d.ts +62 -0
- package/dist/server/middleware.js +114 -0
- package/dist/server/navigation-planner.d.ts +308 -0
- package/dist/server/navigation-planner.js +831 -0
- package/dist/server/navigation-trace.d.ts +68 -0
- package/dist/server/navigation-trace.js +71 -0
- package/dist/server/next-error-digest.d.ts +44 -0
- package/dist/server/next-error-digest.js +40 -0
- package/dist/server/normalize-path.d.ts +38 -0
- package/dist/server/normalize-path.js +70 -0
- package/dist/server/open-redirect.d.ts +12 -0
- package/dist/server/open-redirect.js +21 -0
- package/dist/server/operation-token.d.ts +40 -0
- package/dist/server/operation-token.js +85 -0
- package/dist/server/otel-tracer-extension.d.ts +45 -0
- package/dist/server/otel-tracer-extension.js +89 -0
- package/dist/server/pages-api-route.d.ts +83 -0
- package/dist/server/pages-api-route.js +75 -0
- package/dist/server/pages-asset-tags.d.ts +78 -0
- package/dist/server/pages-asset-tags.js +126 -0
- package/dist/server/pages-body-parser-config.d.ts +59 -0
- package/dist/server/pages-body-parser-config.js +77 -0
- package/dist/server/pages-data-route.d.ts +121 -0
- package/dist/server/pages-data-route.js +157 -0
- package/dist/server/pages-default-404.d.ts +30 -0
- package/dist/server/pages-default-404.js +38 -0
- package/dist/server/pages-dev-module-url.d.ts +4 -0
- package/dist/server/pages-dev-module-url.js +15 -0
- package/dist/server/pages-document-initial-props.d.ts +77 -0
- package/dist/server/pages-document-initial-props.js +109 -0
- package/dist/server/pages-get-initial-props.d.ts +67 -0
- package/dist/server/pages-get-initial-props.js +92 -0
- package/dist/server/pages-i18n.d.ts +106 -0
- package/dist/server/pages-i18n.js +183 -0
- package/dist/server/pages-media-type.d.ts +15 -0
- package/dist/server/pages-media-type.js +24 -0
- package/dist/server/pages-node-compat.d.ts +55 -0
- package/dist/server/pages-node-compat.js +235 -0
- package/dist/server/pages-page-data.d.ts +223 -0
- package/dist/server/pages-page-data.js +484 -0
- package/dist/server/pages-page-handler.d.ts +100 -0
- package/dist/server/pages-page-handler.js +403 -0
- package/dist/server/pages-page-method.d.ts +47 -0
- package/dist/server/pages-page-method.js +17 -0
- package/dist/server/pages-page-response.d.ts +138 -0
- package/dist/server/pages-page-response.js +285 -0
- package/dist/server/pages-readiness.d.ts +36 -0
- package/dist/server/pages-readiness.js +21 -0
- package/dist/server/pages-request-pipeline.d.ts +116 -0
- package/dist/server/pages-request-pipeline.js +311 -0
- package/dist/server/pages-revalidate.d.ts +15 -0
- package/dist/server/pages-revalidate.js +19 -0
- package/dist/server/pages-serializable-props.d.ts +24 -0
- package/dist/server/pages-serializable-props.js +67 -0
- package/dist/server/pregenerated-concrete-paths.d.ts +16 -0
- package/dist/server/pregenerated-concrete-paths.js +61 -0
- package/dist/server/prerender-manifest.d.ts +33 -0
- package/dist/server/prerender-manifest.js +54 -0
- package/dist/server/prerender-route-params.d.ts +23 -0
- package/dist/server/prerender-route-params.js +113 -0
- package/dist/server/prerender-work-unit-setup.d.ts +6 -0
- package/dist/server/prerender-work-unit-setup.js +28 -0
- package/dist/server/prod-server.d.ts +148 -0
- package/dist/server/prod-server.js +1136 -0
- package/dist/server/proxy-trust.d.ts +40 -0
- package/dist/server/proxy-trust.js +68 -0
- package/dist/server/request-log.d.ts +39 -0
- package/dist/server/request-log.js +56 -0
- package/dist/server/request-pipeline.d.ts +187 -0
- package/dist/server/request-pipeline.js +447 -0
- package/dist/server/rsc-stream-hints.d.ts +10 -0
- package/dist/server/rsc-stream-hints.js +41 -0
- package/dist/server/seed-cache.d.ts +29 -0
- package/dist/server/seed-cache.js +125 -0
- package/dist/server/server-action-not-found.d.ts +21 -0
- package/dist/server/server-action-not-found.js +62 -0
- package/dist/server/server-globals.d.ts +4 -0
- package/dist/server/server-globals.js +35 -0
- package/dist/server/skip-cache-proof.d.ts +61 -0
- package/dist/server/skip-cache-proof.js +168 -0
- package/dist/server/socket-error-backstop.d.ts +34 -0
- package/dist/server/socket-error-backstop.js +200 -0
- package/dist/server/static-file-cache.d.ts +56 -0
- package/dist/server/static-file-cache.js +231 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
- package/dist/server/static-layout-client-reuse-proof.js +33 -0
- package/dist/server/streaming-metadata.d.ts +4 -0
- package/dist/server/streaming-metadata.js +8 -0
- package/dist/server/worker-utils.d.ts +7 -0
- package/dist/server/worker-utils.js +99 -0
- package/dist/shims/amp.d.ts +19 -0
- package/dist/shims/amp.js +23 -0
- package/dist/shims/app-router-scroll-state.d.ts +15 -0
- package/dist/shims/app-router-scroll-state.js +61 -0
- package/dist/shims/app-router-scroll.d.ts +29 -0
- package/dist/shims/app-router-scroll.js +141 -0
- package/dist/shims/app.d.ts +42 -0
- package/dist/shims/app.js +48 -0
- package/dist/shims/before-interactive-context.d.ts +40 -0
- package/dist/shims/before-interactive-context.js +8 -0
- package/dist/shims/cache-for-request.d.ts +57 -0
- package/dist/shims/cache-for-request.js +72 -0
- package/dist/shims/cache-handler.d.ts +106 -0
- package/dist/shims/cache-handler.js +176 -0
- package/dist/shims/cache-request-state.d.ts +47 -0
- package/dist/shims/cache-request-state.js +126 -0
- package/dist/shims/cache-runtime.d.ts +83 -0
- package/dist/shims/cache-runtime.js +452 -0
- package/dist/shims/cache.d.ts +145 -0
- package/dist/shims/cache.js +401 -0
- package/dist/shims/cdn-cache.d.ts +125 -0
- package/dist/shims/cdn-cache.js +100 -0
- package/dist/shims/client-hook-error.d.ts +13 -0
- package/dist/shims/client-hook-error.js +17 -0
- package/dist/shims/client-locale.d.ts +14 -0
- package/dist/shims/client-locale.js +11 -0
- package/dist/shims/client-only.d.ts +1 -0
- package/dist/shims/client-only.js +1 -0
- package/dist/shims/compat-router.d.ts +16 -0
- package/dist/shims/compat-router.js +25 -0
- package/dist/shims/config.d.ts +28 -0
- package/dist/shims/config.js +21 -0
- package/dist/shims/constants.d.ts +130 -0
- package/dist/shims/constants.js +167 -0
- package/dist/shims/default-global-error.d.ts +31 -0
- package/dist/shims/default-global-error.js +179 -0
- package/dist/shims/default-not-found.d.ts +11 -0
- package/dist/shims/default-not-found.js +59 -0
- package/dist/shims/document.d.ts +92 -0
- package/dist/shims/document.js +76 -0
- package/dist/shims/dynamic-preload-chunks.d.ts +8 -0
- package/dist/shims/dynamic-preload-chunks.js +79 -0
- package/dist/shims/dynamic.d.ts +35 -0
- package/dist/shims/dynamic.js +204 -0
- package/dist/shims/error-boundary-navigation.d.ts +7 -0
- package/dist/shims/error-boundary-navigation.js +44 -0
- package/dist/shims/error-boundary.d.ts +155 -0
- package/dist/shims/error-boundary.js +342 -0
- package/dist/shims/error.d.ts +31 -0
- package/dist/shims/error.js +123 -0
- package/dist/shims/error.react-server.d.ts +9 -0
- package/dist/shims/error.react-server.js +6 -0
- package/dist/shims/fetch-cache.d.ts +136 -0
- package/dist/shims/fetch-cache.js +766 -0
- package/dist/shims/font-google-base.d.ts +83 -0
- package/dist/shims/font-google-base.js +290 -0
- package/dist/shims/font-google.d.ts +2 -0
- package/dist/shims/font-google.js +2 -0
- package/dist/shims/font-local.d.ts +50 -0
- package/dist/shims/font-local.js +195 -0
- package/dist/shims/font-utils.d.ts +56 -0
- package/dist/shims/font-utils.js +107 -0
- package/dist/shims/form.d.ts +19 -0
- package/dist/shims/form.js +236 -0
- package/dist/shims/hash-scroll.d.ts +10 -0
- package/dist/shims/hash-scroll.js +47 -0
- package/dist/shims/head-state.d.ts +16 -0
- package/dist/shims/head-state.js +43 -0
- package/dist/shims/head.d.ts +73 -0
- package/dist/shims/head.js +340 -0
- package/dist/shims/headers.d.ts +253 -0
- package/dist/shims/headers.js +754 -0
- package/dist/shims/i18n-context.d.ts +22 -0
- package/dist/shims/i18n-context.js +42 -0
- package/dist/shims/i18n-state.d.ts +14 -0
- package/dist/shims/i18n-state.js +38 -0
- package/dist/shims/image-config.d.ts +45 -0
- package/dist/shims/image-config.js +85 -0
- package/dist/shims/image.d.ts +55 -0
- package/dist/shims/image.js +582 -0
- package/dist/shims/internal/als-registry.d.ts +14 -0
- package/dist/shims/internal/als-registry.js +80 -0
- package/dist/shims/internal/api-utils.d.ts +14 -0
- package/dist/shims/internal/api-utils.js +1 -0
- package/dist/shims/internal/app-page-props-cache-key.d.ts +5 -0
- package/dist/shims/internal/app-page-props-cache-key.js +16 -0
- package/dist/shims/internal/app-route-detection.d.ts +39 -0
- package/dist/shims/internal/app-route-detection.js +62 -0
- package/dist/shims/internal/app-router-context.d.ts +31 -0
- package/dist/shims/internal/app-router-context.js +28 -0
- package/dist/shims/internal/cookie-serialize.d.ts +45 -0
- package/dist/shims/internal/cookie-serialize.js +49 -0
- package/dist/shims/internal/cookies.d.ts +2 -0
- package/dist/shims/internal/cookies.js +2 -0
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +31 -0
- package/dist/shims/internal/hybrid-client-route-owner.js +143 -0
- package/dist/shims/internal/interpolate-as.d.ts +25 -0
- package/dist/shims/internal/interpolate-as.js +196 -0
- package/dist/shims/internal/link-status-registry.d.ts +43 -0
- package/dist/shims/internal/link-status-registry.js +42 -0
- package/dist/shims/internal/make-hanging-promise.d.ts +15 -0
- package/dist/shims/internal/make-hanging-promise.js +44 -0
- package/dist/shims/internal/navigation-untracked.d.ts +35 -0
- package/dist/shims/internal/navigation-untracked.js +56 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +54 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js +121 -0
- package/dist/shims/internal/pages-data-target.d.ts +62 -0
- package/dist/shims/internal/pages-data-target.js +98 -0
- package/dist/shims/internal/pages-data-url.d.ts +41 -0
- package/dist/shims/internal/pages-data-url.js +71 -0
- package/dist/shims/internal/pages-router-accessor.d.ts +19 -0
- package/dist/shims/internal/pages-router-accessor.js +13 -0
- package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
- package/dist/shims/internal/route-pattern-for-warning.js +40 -0
- package/dist/shims/internal/router-context.d.ts +7 -0
- package/dist/shims/internal/router-context.js +13 -0
- package/dist/shims/internal/utils.d.ts +52 -0
- package/dist/shims/internal/utils.js +27 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +30 -0
- package/dist/shims/internal/work-unit-async-storage.js +17 -0
- package/dist/shims/layout-segment-context.d.ts +24 -0
- package/dist/shims/layout-segment-context.js +39 -0
- package/dist/shims/legacy-image.d.ts +41 -0
- package/dist/shims/legacy-image.js +49 -0
- package/dist/shims/link-prefetch.d.ts +41 -0
- package/dist/shims/link-prefetch.js +43 -0
- package/dist/shims/link.d.ts +102 -0
- package/dist/shims/link.js +687 -0
- package/dist/shims/metadata.d.ts +285 -0
- package/dist/shims/metadata.js +820 -0
- package/dist/shims/navigation-context-state.d.ts +40 -0
- package/dist/shims/navigation-context-state.js +116 -0
- package/dist/shims/navigation-errors.d.ts +55 -0
- package/dist/shims/navigation-errors.js +110 -0
- package/dist/shims/navigation-server.d.ts +3 -0
- package/dist/shims/navigation-server.js +3 -0
- package/dist/shims/navigation-state.d.ts +25 -0
- package/dist/shims/navigation-state.js +66 -0
- package/dist/shims/navigation.d.ts +286 -0
- package/dist/shims/navigation.js +1206 -0
- package/dist/shims/navigation.react-server.d.ts +14 -0
- package/dist/shims/navigation.react-server.js +32 -0
- package/dist/shims/offline.d.ts +4 -0
- package/dist/shims/offline.js +15 -0
- package/dist/shims/og.d.ts +17 -0
- package/dist/shims/og.js +48 -0
- package/dist/shims/pages-router-runtime.d.ts +12 -0
- package/dist/shims/pages-router-runtime.js +24 -0
- package/dist/shims/ppr-fallback-shell.d.ts +33 -0
- package/dist/shims/ppr-fallback-shell.js +170 -0
- package/dist/shims/readonly-url-search-params.d.ts +13 -0
- package/dist/shims/readonly-url-search-params.js +26 -0
- package/dist/shims/request-context.d.ts +58 -0
- package/dist/shims/request-context.js +45 -0
- package/dist/shims/request-state-types.d.ts +12 -0
- package/dist/shims/request-state-types.js +1 -0
- package/dist/shims/root-params.d.ts +12 -0
- package/dist/shims/root-params.js +30 -0
- package/dist/shims/router-state.d.ts +32 -0
- package/dist/shims/router-state.js +39 -0
- package/dist/shims/router.d.ts +192 -0
- package/dist/shims/router.js +1786 -0
- package/dist/shims/script-nonce-context.d.ts +11 -0
- package/dist/shims/script-nonce-context.js +23 -0
- package/dist/shims/script.d.ts +43 -0
- package/dist/shims/script.js +370 -0
- package/dist/shims/server-only.d.ts +1 -0
- package/dist/shims/server-only.js +1 -0
- package/dist/shims/server.d.ts +323 -0
- package/dist/shims/server.js +729 -0
- package/dist/shims/slot.d.ts +45 -0
- package/dist/shims/slot.js +230 -0
- package/dist/shims/thenable-params.d.ts +11 -0
- package/dist/shims/thenable-params.js +176 -0
- package/dist/shims/unified-request-context.d.ts +68 -0
- package/dist/shims/unified-request-context.js +86 -0
- package/dist/shims/unrecognized-action-error.d.ts +34 -0
- package/dist/shims/unrecognized-action-error.js +39 -0
- package/dist/shims/url-safety.d.ts +34 -0
- package/dist/shims/url-safety.js +70 -0
- package/dist/shims/url-utils.d.ts +51 -0
- package/dist/shims/url-utils.js +156 -0
- package/dist/shims/use-merged-ref.d.ts +6 -0
- package/dist/shims/use-merged-ref.js +38 -0
- package/dist/shims/web-vitals.d.ts +8 -0
- package/dist/shims/web-vitals.js +22 -0
- package/dist/typegen.d.ts +9 -0
- package/dist/typegen.js +228 -0
- package/dist/utils/asset-prefix.d.ts +96 -0
- package/dist/utils/asset-prefix.js +122 -0
- package/dist/utils/base-path.d.ts +31 -0
- package/dist/utils/base-path.js +45 -0
- package/dist/utils/built-asset-url.d.ts +4 -0
- package/dist/utils/built-asset-url.js +11 -0
- package/dist/utils/cache-control-metadata.d.ts +4 -0
- package/dist/utils/cache-control-metadata.js +12 -0
- package/dist/utils/client-build-manifest.d.ts +21 -0
- package/dist/utils/client-build-manifest.js +87 -0
- package/dist/utils/client-entry-manifest.d.ts +11 -0
- package/dist/utils/client-entry-manifest.js +29 -0
- package/dist/utils/client-runtime-metadata.d.ts +45 -0
- package/dist/utils/client-runtime-metadata.js +63 -0
- package/dist/utils/commonjs-loader.d.ts +16 -0
- package/dist/utils/commonjs-loader.js +100 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -0
- package/dist/utils/deployment-id.d.ts +8 -0
- package/dist/utils/deployment-id.js +22 -0
- package/dist/utils/dev-error-recovery-event.d.ts +4 -0
- package/dist/utils/dev-error-recovery-event.js +4 -0
- package/dist/utils/domain-locale.d.ts +26 -0
- package/dist/utils/domain-locale.js +50 -0
- package/dist/utils/encode-cache-tag.d.ts +30 -0
- package/dist/utils/encode-cache-tag.js +36 -0
- package/dist/utils/error-cause.d.ts +4 -0
- package/dist/utils/error-cause.js +95 -0
- package/dist/utils/has-trailing-comma.d.ts +24 -0
- package/dist/utils/has-trailing-comma.js +62 -0
- package/dist/utils/hash.d.ts +24 -0
- package/dist/utils/hash.js +55 -0
- package/dist/utils/html-limited-bots.d.ts +21 -0
- package/dist/utils/html-limited-bots.js +35 -0
- package/dist/utils/lazy-chunks.d.ts +59 -0
- package/dist/utils/lazy-chunks.js +112 -0
- package/dist/utils/manifest-paths.d.ts +30 -0
- package/dist/utils/manifest-paths.js +66 -0
- package/dist/utils/mdx-scan.d.ts +9 -0
- package/dist/utils/mdx-scan.js +34 -0
- package/dist/utils/navigation-signal.d.ts +4 -0
- package/dist/utils/navigation-signal.js +12 -0
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/parse-cookie.d.ts +13 -0
- package/dist/utils/parse-cookie.js +52 -0
- package/dist/utils/path.d.ts +22 -0
- package/dist/utils/path.js +30 -0
- package/dist/utils/prerender-output-paths.d.ts +14 -0
- package/dist/utils/prerender-output-paths.js +22 -0
- package/dist/utils/project.d.ts +76 -0
- package/dist/utils/project.js +213 -0
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +4 -0
- package/dist/utils/public-routes.js +48 -0
- package/dist/utils/query.d.ts +49 -0
- package/dist/utils/query.js +122 -0
- package/dist/utils/record.d.ts +4 -0
- package/dist/utils/record.js +6 -0
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +17 -0
- package/dist/utils/safe-json-file.js +23 -0
- package/dist/utils/sorted-array.d.ts +8 -0
- package/dist/utils/sorted-array.js +20 -0
- package/dist/utils/text-stream.d.ts +28 -0
- package/dist/utils/text-stream.js +64 -0
- package/dist/utils/vinext-root.d.ts +23 -0
- package/dist/utils/vinext-root.js +29 -0
- package/dist/utils/virtual-module.d.ts +5 -0
- package/dist/utils/virtual-module.js +0 -0
- package/dist/utils/vite-version.d.ts +21 -0
- package/dist/utils/vite-version.js +42 -0
- package/package.json +145 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { isUnknownRecord } from "../utils/record.js";
|
|
2
|
+
//#region src/client/vinext-next-data.ts
|
|
3
|
+
function extractVinextNextDataJson(html) {
|
|
4
|
+
const canonical = /<script\b(?=[^>]*\bid=["']__NEXT_DATA__["'])(?=[^>]*\btype=["']application\/json["'])[^>]*>([\s\S]*?)<\/script>/.exec(html);
|
|
5
|
+
if (canonical) return canonical[1];
|
|
6
|
+
const assignment = /<script(?:\s[^>]*)?>\s*window\.__NEXT_DATA__\s*=\s*/.exec(html);
|
|
7
|
+
if (!assignment || assignment.index === void 0) return null;
|
|
8
|
+
let start = assignment.index + assignment[0].length;
|
|
9
|
+
while (html[start] === " " || html[start] === "\n" || html[start] === " " || html[start] === "\r") start++;
|
|
10
|
+
if (html[start] !== "{") return null;
|
|
11
|
+
let depth = 0;
|
|
12
|
+
let inString = false;
|
|
13
|
+
let escaped = false;
|
|
14
|
+
for (let index = start; index < html.length; index++) {
|
|
15
|
+
const char = html[index];
|
|
16
|
+
if (inString) {
|
|
17
|
+
if (escaped) escaped = false;
|
|
18
|
+
else if (char === "\\") escaped = true;
|
|
19
|
+
else if (char === "\"") inString = false;
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (char === "\"") inString = true;
|
|
23
|
+
else if (char === "{") depth++;
|
|
24
|
+
else if (char === "}") {
|
|
25
|
+
depth--;
|
|
26
|
+
if (depth === 0) return html.slice(start, index + 1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
function parseVinextNextDataJson(json) {
|
|
32
|
+
const parsed = JSON.parse(json);
|
|
33
|
+
if (!isBrowserVinextNextData(parsed)) throw new Error("Navigation failed: invalid __NEXT_DATA__ in response");
|
|
34
|
+
return parsed;
|
|
35
|
+
}
|
|
36
|
+
function isBrowserVinextNextData(value) {
|
|
37
|
+
if (!isUnknownRecord(value)) return false;
|
|
38
|
+
const props = value.props;
|
|
39
|
+
const page = value.page;
|
|
40
|
+
const query = value.query;
|
|
41
|
+
const vinext = value.__vinext;
|
|
42
|
+
return isUnknownRecord(props) && typeof page === "string" && isUnknownRecord(query) && (vinext === void 0 || isUnknownRecord(vinext));
|
|
43
|
+
}
|
|
44
|
+
function applyVinextLocaleGlobals(target, nextData) {
|
|
45
|
+
if (nextData.locale !== void 0) target.__VINEXT_LOCALE__ = nextData.locale;
|
|
46
|
+
if (nextData.locales !== void 0) target.__VINEXT_LOCALES__ = [...nextData.locales];
|
|
47
|
+
if (nextData.defaultLocale !== void 0) target.__VINEXT_DEFAULT_LOCALE__ = nextData.defaultLocale;
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { applyVinextLocaleGlobals, extractVinextNextDataJson, parseVinextNextDataJson };
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
//#region src/client/window-next.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Install the `window.next` debug/diagnostic global that Next.js exposes
|
|
4
|
+
* on the client.
|
|
5
|
+
*
|
|
6
|
+
* Next.js publishes a small per-app object on `window.next` from its
|
|
7
|
+
* client bootstraps and uses it for two distinct purposes:
|
|
8
|
+
*
|
|
9
|
+
* 1. An external debugging / test-automation surface. Pages Router tests
|
|
10
|
+
* and userland code routinely call `window.next.router.push(...)` and
|
|
11
|
+
* `window.next.router.events.on(...)` directly, and the App Router
|
|
12
|
+
* bootstrap sets `appDir: true` so consumers can branch on which
|
|
13
|
+
* router is active.
|
|
14
|
+
* - Pages Router: `packages/next/src/client/next.ts`
|
|
15
|
+
* - App Router: `packages/next/src/client/app-bootstrap.ts`
|
|
16
|
+
* - App Router public surface:
|
|
17
|
+
* `packages/next/src/client/components/app-router-instance.ts`
|
|
18
|
+
* (`window.next.router = publicAppRouterInstance` at line 510)
|
|
19
|
+
*
|
|
20
|
+
* 2. Internal navigation bookkeeping read by Next.js itself. The App
|
|
21
|
+
* Router's <Router> component writes `window.next.__internal_src_page`
|
|
22
|
+
* whenever the active source-page changes, and the router instance
|
|
23
|
+
* writes `window.next.__pendingUrl` at the start of a programmatic
|
|
24
|
+
* navigation so nav-failure-handler.ts can fall back to a hard
|
|
25
|
+
* navigation if a render fails.
|
|
26
|
+
* - `packages/next/src/client/components/app-router.tsx` (line ~204)
|
|
27
|
+
* - `packages/next/src/client/components/app-router-instance.ts`
|
|
28
|
+
* (line ~296)
|
|
29
|
+
* - `packages/next/src/client/components/nav-failure-handler.ts`
|
|
30
|
+
*
|
|
31
|
+
* Without this global, third-party libraries and a large fraction of the
|
|
32
|
+
* Next.js deploy test suite crash with
|
|
33
|
+
* `TypeError: Cannot read properties of undefined (reading 'router')`.
|
|
34
|
+
*
|
|
35
|
+
* Both routers in vinext share this installer so the field shape stays in
|
|
36
|
+
* sync and only one source of truth describes the supported keys.
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* The minimum App Router public router surface that Next.js exposes on
|
|
40
|
+
* `window.next.router`. Mirrors the `publicAppRouterInstance` shape from
|
|
41
|
+
* `packages/next/src/client/components/app-router-instance.ts`.
|
|
42
|
+
*
|
|
43
|
+
* `hmrRefresh` is intentionally omitted — vinext does not implement it.
|
|
44
|
+
* `experimental_gesturePush` is attached only when
|
|
45
|
+
* `experimental.gestureTransition` is enabled, matching Next.js.
|
|
46
|
+
*/
|
|
47
|
+
type AppRouterPublicInstance = {
|
|
48
|
+
push: (href: string, options?: {
|
|
49
|
+
scroll?: boolean;
|
|
50
|
+
}) => void;
|
|
51
|
+
replace: (href: string, options?: {
|
|
52
|
+
scroll?: boolean;
|
|
53
|
+
}) => void;
|
|
54
|
+
back: () => void;
|
|
55
|
+
forward: () => void;
|
|
56
|
+
refresh: () => void;
|
|
57
|
+
prefetch: (href: string, options?: {
|
|
58
|
+
onInvalidate?: () => void;
|
|
59
|
+
}) => void;
|
|
60
|
+
experimental_gesturePush?: (href: string, options?: {
|
|
61
|
+
scroll?: boolean;
|
|
62
|
+
}) => void; /** Default placeholder, matches Next.js. */
|
|
63
|
+
bfcacheId?: string;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Pages Router singleton surface — matches `NextRouter` from
|
|
67
|
+
* `packages/next/src/shared/lib/router/router.ts` (line 372).
|
|
68
|
+
*
|
|
69
|
+
* Exported because `shims/router.ts` casts its strict `NextRouter` value
|
|
70
|
+
* to this looser type at the install call site (Pages Router methods take
|
|
71
|
+
* narrow `UrlObject | string` arguments, which are not contravariantly
|
|
72
|
+
* assignable to the `unknown[]` surface this global exposes).
|
|
73
|
+
*
|
|
74
|
+
* `push` and `replace` return `Promise<boolean>` to match Next.js's
|
|
75
|
+
* documented contract (`packages/next/src/shared/lib/router/router.ts:1025-1068`
|
|
76
|
+
* — push/replace delegate to `change()` which returns `Promise<boolean>`,
|
|
77
|
+
* resolving to `true` on a successful navigation and `false` when blocked
|
|
78
|
+
* — e.g. hard-navigation fallback). The Next.js deploy test suite reads
|
|
79
|
+
* the resolved value via `browser.eval('await window.next.router.push(...)')`
|
|
80
|
+
* to assert success.
|
|
81
|
+
*/
|
|
82
|
+
type PagesRouterPublicInstance = {
|
|
83
|
+
push: (...args: unknown[]) => Promise<boolean>;
|
|
84
|
+
replace: (...args: unknown[]) => Promise<boolean>;
|
|
85
|
+
back: () => void;
|
|
86
|
+
reload: () => void;
|
|
87
|
+
prefetch: (...args: unknown[]) => unknown;
|
|
88
|
+
beforePopState: (cb: (...args: unknown[]) => boolean) => void;
|
|
89
|
+
events: {
|
|
90
|
+
on: (event: string, handler: (...args: unknown[]) => void) => void;
|
|
91
|
+
off: (event: string, handler: (...args: unknown[]) => void) => void;
|
|
92
|
+
emit: (event: string, ...args: unknown[]) => void;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Mirrors Next.js's `Router.components`. Read by external tooling (and the
|
|
96
|
+
* Next.js deploy test suite) to detect routes that have been seen via
|
|
97
|
+
* prefetch — App Router targets land here as `{ __appRouter: true }`.
|
|
98
|
+
* See: `packages/next/src/shared/lib/router/router.ts:2525`.
|
|
99
|
+
*/
|
|
100
|
+
components: Record<string, unknown>;
|
|
101
|
+
};
|
|
102
|
+
declare global {
|
|
103
|
+
interface Window {
|
|
104
|
+
next?: WindowNext;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The shape of `window.next`. Only includes fields vinext actually
|
|
109
|
+
* implements. App Router additionally writes `__internal_src_page` and
|
|
110
|
+
* `__pendingUrl` at runtime; they start undefined.
|
|
111
|
+
*
|
|
112
|
+
* Not exported because all use is internal to this module — callers read
|
|
113
|
+
* the shape off `window.next` directly, which inherits the augmentation
|
|
114
|
+
* above without a named type import.
|
|
115
|
+
*/
|
|
116
|
+
type WindowNext = {
|
|
117
|
+
/**
|
|
118
|
+
* Version string, mirroring Next.js's `process.env.__NEXT_VERSION` set
|
|
119
|
+
* from `packages/next/src/client/next.ts` (line 5). vinext substitutes
|
|
120
|
+
* the vinext package version because there is no underlying Next.js
|
|
121
|
+
* runtime to report.
|
|
122
|
+
*/
|
|
123
|
+
version: string;
|
|
124
|
+
/**
|
|
125
|
+
* `true` when the App Router bootstrap has run on this page. Matches
|
|
126
|
+
* Next.js `app-bootstrap.ts` (line 15: `appDir: true`). Pages Router
|
|
127
|
+
* leaves this undefined.
|
|
128
|
+
*/
|
|
129
|
+
appDir?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* The active router instance. App Router writes the publicAppRouterInstance
|
|
132
|
+
* here; Pages Router writes its Router singleton. Same property name in
|
|
133
|
+
* both Next.js and vinext.
|
|
134
|
+
*/
|
|
135
|
+
router?: AppRouterPublicInstance | PagesRouterPublicInstance;
|
|
136
|
+
/**
|
|
137
|
+
* App Router only. The URL of the current in-flight navigation (set when
|
|
138
|
+
* a navigation begins, cleared on commit). Read by
|
|
139
|
+
* `nav-failure-handler.ts` to fall back to a hard navigation when a
|
|
140
|
+
* render fails. Pages Router does not write this.
|
|
141
|
+
*/
|
|
142
|
+
__pendingUrl?: URL;
|
|
143
|
+
/**
|
|
144
|
+
* App Router only. The source page extracted from the current Flight
|
|
145
|
+
* router state. Read by external tooling and Next.js's own dev hot
|
|
146
|
+
* reloader. Pages Router does not write this.
|
|
147
|
+
*/
|
|
148
|
+
__internal_src_page?: string;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Install `window.next` if it has not already been installed in this
|
|
152
|
+
* document. Subsequent calls update fields in place so both the Pages
|
|
153
|
+
* Router and the App Router bootstraps can call this without clobbering
|
|
154
|
+
* each other (e.g. for hybrid `pages/` + `app/` setups).
|
|
155
|
+
*
|
|
156
|
+
* When called a second time, `router` and `appDir` overwrite the previous
|
|
157
|
+
* values. This mirrors Next.js's load order: in a hybrid app the App
|
|
158
|
+
* Router's `app-bootstrap.ts` runs after Pages Router's `next.ts` and the
|
|
159
|
+
* App Router instance wins.
|
|
160
|
+
*
|
|
161
|
+
* No module-level cache: we read and write through `window.next` directly
|
|
162
|
+
* so that a test (or userland code) that deletes `window.next` cleanly
|
|
163
|
+
* resets state.
|
|
164
|
+
*/
|
|
165
|
+
declare function installWindowNext(fields: Partial<WindowNext>): void;
|
|
166
|
+
declare function setWindowNextInternalSourcePage(sourcePage: string | null): void;
|
|
167
|
+
//#endregion
|
|
168
|
+
export { PagesRouterPublicInstance, installWindowNext, setWindowNextInternalSourcePage };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
//#region src/client/window-next.ts
|
|
2
|
+
/**
|
|
3
|
+
* Build-time replacement for the vinext package version, injected by the
|
|
4
|
+
* Vite plugin via `define` (see `index.ts` — `process.env.__NEXT_VERSION`
|
|
5
|
+
* is mirrored from `packages/vinext/package.json#version` so library
|
|
6
|
+
* callers that read `process.env.__NEXT_VERSION` see a real value).
|
|
7
|
+
*
|
|
8
|
+
* In environments where the define did not run (standalone unit tests
|
|
9
|
+
* that import this module without going through the plugin), the
|
|
10
|
+
* `?? "vinext"` fallback prevents a literal `undefined` from landing on
|
|
11
|
+
* `window.next.version`.
|
|
12
|
+
*/
|
|
13
|
+
const VINEXT_VERSION = process.env.__NEXT_VERSION ?? "vinext";
|
|
14
|
+
/**
|
|
15
|
+
* Install `window.next` if it has not already been installed in this
|
|
16
|
+
* document. Subsequent calls update fields in place so both the Pages
|
|
17
|
+
* Router and the App Router bootstraps can call this without clobbering
|
|
18
|
+
* each other (e.g. for hybrid `pages/` + `app/` setups).
|
|
19
|
+
*
|
|
20
|
+
* When called a second time, `router` and `appDir` overwrite the previous
|
|
21
|
+
* values. This mirrors Next.js's load order: in a hybrid app the App
|
|
22
|
+
* Router's `app-bootstrap.ts` runs after Pages Router's `next.ts` and the
|
|
23
|
+
* App Router instance wins.
|
|
24
|
+
*
|
|
25
|
+
* No module-level cache: we read and write through `window.next` directly
|
|
26
|
+
* so that a test (or userland code) that deletes `window.next` cleanly
|
|
27
|
+
* resets state.
|
|
28
|
+
*/
|
|
29
|
+
function installWindowNext(fields) {
|
|
30
|
+
if (typeof window === "undefined") return;
|
|
31
|
+
const existing = window.next;
|
|
32
|
+
if (existing) {
|
|
33
|
+
if (fields.version !== void 0) existing.version = fields.version;
|
|
34
|
+
if (fields.appDir !== void 0) existing.appDir = fields.appDir;
|
|
35
|
+
if (fields.router !== void 0) existing.router = fields.router;
|
|
36
|
+
if (fields.__pendingUrl !== void 0) existing.__pendingUrl = fields.__pendingUrl;
|
|
37
|
+
if (fields.__internal_src_page !== void 0) existing.__internal_src_page = fields.__internal_src_page;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
window.next = {
|
|
41
|
+
version: fields.version ?? VINEXT_VERSION,
|
|
42
|
+
...fields
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function setWindowNextInternalSourcePage(sourcePage) {
|
|
46
|
+
if (typeof window === "undefined") return;
|
|
47
|
+
installWindowNext({});
|
|
48
|
+
if (sourcePage === null) {
|
|
49
|
+
delete window.next?.__internal_src_page;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const next = window.next;
|
|
53
|
+
if (!next) return;
|
|
54
|
+
next.__internal_src_page = sourcePage;
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { installWindowNext, setWindowNextInternalSourcePage };
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { getRequestExecutionContext } from "../../../shims/request-context.js";
|
|
2
|
+
//#region ../cloudflare/src/cache/cdn-adapter.runtime.ts
|
|
3
|
+
function getWorkersCache() {
|
|
4
|
+
const cache = getRequestExecutionContext()?.cache;
|
|
5
|
+
if (cache && typeof cache.purge === "function") return cache;
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
/** Non-cacheable responses: nobody (edge or browser) stores them. */
|
|
9
|
+
const NO_STORE = "no-store";
|
|
10
|
+
/**
|
|
11
|
+
* Browser-facing policy for cacheable responses. `public` allows shared caches
|
|
12
|
+
* to participate, but `max-age=0, must-revalidate` forces every reuse to
|
|
13
|
+
* revalidate (against the edge) rather than serving a stored copy — so the user
|
|
14
|
+
* always sees edge-fresh content while still permitting conditional 304s.
|
|
15
|
+
*/
|
|
16
|
+
const BROWSER_REVALIDATE = "public, max-age=0, must-revalidate";
|
|
17
|
+
/**
|
|
18
|
+
* A concrete stale window (1 year) substituted for a value-less
|
|
19
|
+
* `stale-while-revalidate`. The framework emits a bare `stale-while-revalidate`
|
|
20
|
+
* (no `=seconds`) to mean an unbounded stale window — a Vercel CDN extension.
|
|
21
|
+
* Cloudflare follows RFC 5861, which requires `stale-while-revalidate=<seconds>`,
|
|
22
|
+
* and treats the value-less form as a zero-width window (no stale serving →
|
|
23
|
+
* hard expiry at `max-age`, so the next request is a MISS instead of UPDATING).
|
|
24
|
+
* Stamping a large finite value preserves the "serve stale ~indefinitely while
|
|
25
|
+
* revalidating" intent in a form the edge honors.
|
|
26
|
+
*/
|
|
27
|
+
const UNBOUNDED_SWR_SECONDS = 31536e3;
|
|
28
|
+
/**
|
|
29
|
+
* Convert the framework's shared-cache policy into a CDN-scoped one:
|
|
30
|
+
* `s-maxage=…` → `max-age=…` (the edge honors `max-age` inside
|
|
31
|
+
* `CDN-Cache-Control`), give a value-less `stale-while-revalidate` an explicit
|
|
32
|
+
* seconds value (Cloudflare ignores the bare directive), and ensure a leading
|
|
33
|
+
* `public`.
|
|
34
|
+
*/
|
|
35
|
+
function toEdgeCacheControl(cacheControl) {
|
|
36
|
+
const withMaxAge = cacheControl.replace(/\bs-maxage=/g, "max-age=").replace(/\bstale-while-revalidate\b(?!=)/g, `stale-while-revalidate=${UNBOUNDED_SWR_SECONDS}`);
|
|
37
|
+
return /\bpublic\b/.test(withMaxAge) ? withMaxAge : `public, ${withMaxAge}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Cloudflare's `Cache-Tag` header budget is 16 KB total with each tag capped at
|
|
41
|
+
* 1024 bytes. Keep a conservative ceiling so a page with a large tag set never
|
|
42
|
+
* produces an oversized (silently-dropped) header.
|
|
43
|
+
*/
|
|
44
|
+
const MAX_CACHE_TAG_BYTES = 8 * 1024;
|
|
45
|
+
const MAX_SINGLE_TAG_BYTES = 1024;
|
|
46
|
+
/**
|
|
47
|
+
* Build a `Cache-Tag` header value from canonicalised tags. Tags containing a
|
|
48
|
+
* comma (the header separator) or exceeding the per-tag size are skipped, and
|
|
49
|
+
* the whole value is bounded to stay within Cloudflare's limit.
|
|
50
|
+
*/
|
|
51
|
+
function formatCacheTag(tags) {
|
|
52
|
+
const parts = [];
|
|
53
|
+
let total = 0;
|
|
54
|
+
for (const tag of tags) {
|
|
55
|
+
if (!tag || tag.includes(",") || tag.length > MAX_SINGLE_TAG_BYTES) continue;
|
|
56
|
+
const next = total + tag.length + (parts.length > 0 ? 1 : 0);
|
|
57
|
+
if (next > MAX_CACHE_TAG_BYTES) break;
|
|
58
|
+
parts.push(tag);
|
|
59
|
+
total = next;
|
|
60
|
+
}
|
|
61
|
+
return parts.length > 0 ? parts.join(",") : null;
|
|
62
|
+
}
|
|
63
|
+
var CloudflareCdnCacheAdapter = class {
|
|
64
|
+
ownsBackgroundRevalidation = false;
|
|
65
|
+
/**
|
|
66
|
+
* The origin keeps no page store — return null so the request renders fresh.
|
|
67
|
+
* The edge serves cached HIT/STALE responses without reaching the origin.
|
|
68
|
+
*/
|
|
69
|
+
async get() {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
/** No-op: the platform caches the response via its headers, not an origin store. */
|
|
73
|
+
async set(_key, _data, _ctx) {}
|
|
74
|
+
buildResponseHeaders(input) {
|
|
75
|
+
if (!input.cacheControl) return { "Cache-Control": NO_STORE };
|
|
76
|
+
if (/\b(?:no-store|no-cache|private)\b/.test(input.cacheControl)) return {
|
|
77
|
+
"Cache-Control": input.cacheControl,
|
|
78
|
+
"CDN-Cache-Control": null,
|
|
79
|
+
"Cloudflare-CDN-Cache-Control": null,
|
|
80
|
+
"Cache-Tag": null
|
|
81
|
+
};
|
|
82
|
+
const headers = {
|
|
83
|
+
"Cache-Control": BROWSER_REVALIDATE,
|
|
84
|
+
"CDN-Cache-Control": toEdgeCacheControl(input.cacheControl)
|
|
85
|
+
};
|
|
86
|
+
if (input.tags && input.tags.length > 0) {
|
|
87
|
+
const cacheTag = formatCacheTag(input.tags);
|
|
88
|
+
if (cacheTag) headers["Cache-Tag"] = cacheTag;
|
|
89
|
+
}
|
|
90
|
+
return headers;
|
|
91
|
+
}
|
|
92
|
+
/** Purge edge-cached responses by tag via the request context's `cache.purge`. */
|
|
93
|
+
async revalidateTag(tags, _durations) {
|
|
94
|
+
const cache = getWorkersCache();
|
|
95
|
+
if (!cache) return;
|
|
96
|
+
const tagList = (Array.isArray(tags) ? tags : [tags]).filter((t) => typeof t === "string" && t.length > 0);
|
|
97
|
+
if (tagList.length === 0) return;
|
|
98
|
+
await cache.purge({ tags: tagList });
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
export { CloudflareCdnCacheAdapter };
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { CacheHandler, CacheHandlerValue, IncrementalCacheValue } from "../../../shims/cache-handler.js";
|
|
2
|
+
import { ExecutionContextLike } from "../../../shims/request-context.js";
|
|
3
|
+
|
|
4
|
+
//#region ../cloudflare/src/cache/kv-data-adapter.runtime.d.ts
|
|
5
|
+
type KVNamespace = {
|
|
6
|
+
get(key: string, options?: {
|
|
7
|
+
type?: string;
|
|
8
|
+
}): Promise<string | null>;
|
|
9
|
+
get(key: string, options: {
|
|
10
|
+
type: "arrayBuffer";
|
|
11
|
+
}): Promise<ArrayBuffer | null>;
|
|
12
|
+
put(key: string, value: string | ArrayBuffer | ReadableStream, options?: {
|
|
13
|
+
expirationTtl?: number;
|
|
14
|
+
metadata?: Record<string, unknown>;
|
|
15
|
+
}): Promise<void>;
|
|
16
|
+
delete(key: string): Promise<void>;
|
|
17
|
+
list(options?: {
|
|
18
|
+
prefix?: string;
|
|
19
|
+
limit?: number;
|
|
20
|
+
cursor?: string;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
keys: Array<{
|
|
23
|
+
name: string;
|
|
24
|
+
metadata?: Record<string, unknown>;
|
|
25
|
+
}>;
|
|
26
|
+
list_complete: boolean;
|
|
27
|
+
cursor?: string;
|
|
28
|
+
}>;
|
|
29
|
+
};
|
|
30
|
+
/** Key prefix for cache entries. */
|
|
31
|
+
/**
|
|
32
|
+
* Cloudflare KV data cache handler.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated Consumers should not instantiate or register this handler by
|
|
35
|
+
* hand. Configure it declaratively via the `cache.data` option on the
|
|
36
|
+
* `vinext()` plugin, using the {@link kvDataAdapter} builder:
|
|
37
|
+
*
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { vinext } from "vinext";
|
|
40
|
+
* import { kvDataAdapter } from "@vinext/cloudflare/cache/kv-data-adapter";
|
|
41
|
+
*
|
|
42
|
+
* export default defineConfig({
|
|
43
|
+
* plugins: [vinext({ cache: { data: kvDataAdapter({ binding: "VINEXT_KV_CACHE" }) } })],
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* `kvDataAdapter()` is safe to call from `vite.config.ts` — it never touches
|
|
48
|
+
* the Workers runtime — and the plugin defers instantiation of this handler to
|
|
49
|
+
* the first request. This class stays exported for the runtime factory and for
|
|
50
|
+
* backwards compatibility, but is not the recommended consumer API.
|
|
51
|
+
*/
|
|
52
|
+
declare class KVCacheHandler implements CacheHandler {
|
|
53
|
+
private kv;
|
|
54
|
+
private prefix;
|
|
55
|
+
private ctx;
|
|
56
|
+
private ttlSeconds;
|
|
57
|
+
/** Local in-memory cache for tag invalidation timestamps. Avoids redundant KV reads. */
|
|
58
|
+
private _tagCache;
|
|
59
|
+
/** TTL (ms) for local tag cache entries. After this, re-fetch from KV. */
|
|
60
|
+
private _tagCacheTtl;
|
|
61
|
+
constructor(kvNamespace: KVNamespace, options?: {
|
|
62
|
+
appPrefix?: string;
|
|
63
|
+
ctx?: ExecutionContextLike;
|
|
64
|
+
ttlSeconds?: number; /** TTL in milliseconds for the local tag cache. Defaults to 5000ms. */
|
|
65
|
+
tagCacheTtlMs?: number;
|
|
66
|
+
});
|
|
67
|
+
get(key: string, _ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
|
|
68
|
+
/**
|
|
69
|
+
* Check tag invalidation markers for stored tags or read-time soft tags.
|
|
70
|
+
* Uses a local in-memory cache to avoid redundant KV reads for recently-seen tags.
|
|
71
|
+
*/
|
|
72
|
+
private _hasRevalidatedTag;
|
|
73
|
+
set(key: string, data: IncrementalCacheValue | null, ctx?: Record<string, unknown>): Promise<void>;
|
|
74
|
+
revalidateTag(tags: string | string[], _durations?: {
|
|
75
|
+
expire?: number;
|
|
76
|
+
}): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Invalidate all cache entries whose path tags fall under `pathPrefix`.
|
|
79
|
+
*
|
|
80
|
+
* Uses KV list metadata to discover tags without fetching entry values —
|
|
81
|
+
* entries written by `set()` store their tags in KV metadata, so
|
|
82
|
+
* `kv.list()` returns them inline with each key. This makes prefix
|
|
83
|
+
* invalidation O(list_pages) instead of O(entries × get).
|
|
84
|
+
*
|
|
85
|
+
* Entries written before metadata was added (no metadata.tags) are
|
|
86
|
+
* gracefully skipped — they'll be picked up on next `set()` which
|
|
87
|
+
* writes metadata.
|
|
88
|
+
*
|
|
89
|
+
* When present, this method fully replaces the `revalidateTag` call
|
|
90
|
+
* path in `revalidatePath()` — implementors own all path-based tag
|
|
91
|
+
* handling.
|
|
92
|
+
*/
|
|
93
|
+
revalidateByPathPrefix(pathPrefix: string): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Clear the in-memory tag cache for this KVCacheHandler instance.
|
|
96
|
+
*
|
|
97
|
+
* Note: KVCacheHandler instances are typically reused across multiple
|
|
98
|
+
* requests in a Cloudflare Worker. The `_tagCache` is intentionally
|
|
99
|
+
* cross-request — it reduces redundant KV reads for recently-seen tags
|
|
100
|
+
* across all requests hitting the same isolate, bounded by `tagCacheTtlMs`
|
|
101
|
+
* (default 5s). vinext does NOT call this method per request.
|
|
102
|
+
*
|
|
103
|
+
* This is an opt-in escape hatch for callers that need stricter isolation
|
|
104
|
+
* (e.g., tests, or environments with custom lifecycle management).
|
|
105
|
+
* Callers that require per-request isolation should either construct a
|
|
106
|
+
* fresh KVCacheHandler per request or invoke this method explicitly.
|
|
107
|
+
*/
|
|
108
|
+
resetRequestCache(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Fire a KV delete in the background.
|
|
111
|
+
* Prefers the per-request ExecutionContext from ALS (set by
|
|
112
|
+
* runWithExecutionContext in the worker entry) so that background KV
|
|
113
|
+
* operations are registered with the correct request's waitUntil().
|
|
114
|
+
* Falls back to the constructor-provided ctx for callers that set it
|
|
115
|
+
* explicitly, and to fire-and-forget when neither is available (Node.js dev).
|
|
116
|
+
*/
|
|
117
|
+
private _deleteInBackground;
|
|
118
|
+
/**
|
|
119
|
+
* Execute a KV put and return the promise so callers can await completion.
|
|
120
|
+
* Also registers with ctx.waitUntil() so the Workers runtime keeps the
|
|
121
|
+
* isolate alive even if the caller does not await the returned promise.
|
|
122
|
+
*/
|
|
123
|
+
private _put;
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { KVCacheHandler };
|