vinext 0.0.53 → 0.0.54
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/dist/build/inline-css.d.ts +7 -0
- package/dist/build/inline-css.js +50 -0
- package/dist/build/inline-css.js.map +1 -0
- package/dist/build/prerender.js +2 -1
- package/dist/build/prerender.js.map +1 -1
- package/dist/check.js +4 -0
- package/dist/check.js.map +1 -1
- package/dist/client/navigation-runtime.d.ts +2 -1
- package/dist/client/navigation-runtime.js.map +1 -1
- package/dist/client/window-next.d.ts +7 -0
- package/dist/client/window-next.js.map +1 -1
- package/dist/config/next-config.d.ts +83 -1
- package/dist/config/next-config.js +131 -2
- package/dist/config/next-config.js.map +1 -1
- package/dist/deploy.js +13 -0
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-browser-entry.d.ts +11 -1
- package/dist/entries/app-browser-entry.js +16 -6
- package/dist/entries/app-browser-entry.js.map +1 -1
- package/dist/entries/app-rsc-entry.d.ts +8 -1
- package/dist/entries/app-rsc-entry.js +18 -5
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/app-rsc-manifest.d.ts +21 -1
- package/dist/entries/app-rsc-manifest.js +6 -4
- package/dist/entries/app-rsc-manifest.js.map +1 -1
- package/dist/entries/pages-client-entry.d.ts +4 -1
- package/dist/entries/pages-client-entry.js +18 -2
- package/dist/entries/pages-client-entry.js.map +1 -1
- package/dist/entries/pages-server-entry.js +82 -4
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/entries/runtime-entry-module.d.ts +1 -10
- package/dist/entries/runtime-entry-module.js +2 -12
- package/dist/entries/runtime-entry-module.js.map +1 -1
- package/dist/index.js +63 -5
- package/dist/index.js.map +1 -1
- package/dist/plugins/remove-console.d.ts +16 -0
- package/dist/plugins/remove-console.js +176 -0
- package/dist/plugins/remove-console.js.map +1 -0
- package/dist/routing/app-route-graph.d.ts +24 -1
- package/dist/routing/app-route-graph.js +52 -4
- package/dist/routing/app-route-graph.js.map +1 -1
- package/dist/routing/app-router.d.ts +2 -2
- package/dist/routing/app-router.js +2 -2
- package/dist/routing/app-router.js.map +1 -1
- package/dist/routing/file-matcher.d.ts +21 -1
- package/dist/routing/file-matcher.js +39 -1
- package/dist/routing/file-matcher.js.map +1 -1
- package/dist/routing/pages-router.d.ts +1 -1
- package/dist/routing/pages-router.js +10 -3
- package/dist/routing/pages-router.js.map +1 -1
- package/dist/server/api-handler.js +1 -1
- package/dist/server/app-browser-entry.js +25 -16
- package/dist/server/app-browser-entry.js.map +1 -1
- package/dist/server/app-browser-navigation-controller.d.ts +2 -0
- package/dist/server/app-browser-navigation-controller.js +4 -0
- package/dist/server/app-browser-navigation-controller.js.map +1 -1
- package/dist/server/app-elements-wire.d.ts +13 -4
- package/dist/server/app-elements-wire.js +10 -1
- package/dist/server/app-elements-wire.js.map +1 -1
- package/dist/server/app-elements.d.ts +2 -2
- package/dist/server/app-elements.js +2 -2
- package/dist/server/app-elements.js.map +1 -1
- package/dist/server/app-fallback-renderer.d.ts +15 -5
- package/dist/server/app-fallback-renderer.js +10 -4
- package/dist/server/app-fallback-renderer.js.map +1 -1
- package/dist/server/app-inline-css-client.d.ts +7 -0
- package/dist/server/app-inline-css-client.js +37 -0
- package/dist/server/app-inline-css-client.js.map +1 -0
- package/dist/server/app-page-boundary.d.ts +21 -1
- package/dist/server/app-page-boundary.js +28 -3
- package/dist/server/app-page-boundary.js.map +1 -1
- package/dist/server/app-page-cache.d.ts +7 -3
- package/dist/server/app-page-cache.js +7 -7
- package/dist/server/app-page-cache.js.map +1 -1
- package/dist/server/app-page-dispatch.d.ts +10 -1
- package/dist/server/app-page-dispatch.js +126 -79
- package/dist/server/app-page-dispatch.js.map +1 -1
- package/dist/server/app-page-element-builder.js +12 -28
- package/dist/server/app-page-element-builder.js.map +1 -1
- package/dist/server/app-page-render-identity.d.ts +22 -0
- package/dist/server/app-page-render-identity.js +42 -0
- package/dist/server/app-page-render-identity.js.map +1 -0
- package/dist/server/app-page-render.d.ts +8 -1
- package/dist/server/app-page-render.js +4 -1
- package/dist/server/app-page-render.js.map +1 -1
- package/dist/server/app-page-request.d.ts +6 -3
- package/dist/server/app-page-request.js +5 -2
- package/dist/server/app-page-request.js.map +1 -1
- package/dist/server/app-page-response.js +2 -2
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-route-wiring.d.ts +15 -0
- package/dist/server/app-page-route-wiring.js +7 -5
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +11 -0
- package/dist/server/app-page-stream.js +1 -0
- package/dist/server/app-page-stream.js.map +1 -1
- package/dist/server/app-route-handler-response.js +37 -5
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-rsc-handler.d.ts +14 -3
- package/dist/server/app-rsc-handler.js +45 -5
- package/dist/server/app-rsc-handler.js.map +1 -1
- package/dist/server/app-rsc-request-normalization.d.ts +2 -1
- package/dist/server/app-rsc-request-normalization.js +3 -2
- package/dist/server/app-rsc-request-normalization.js.map +1 -1
- package/dist/server/app-server-action-execution.d.ts +21 -3
- package/dist/server/app-server-action-execution.js +42 -7
- package/dist/server/app-server-action-execution.js.map +1 -1
- package/dist/server/app-ssr-entry.d.ts +6 -0
- package/dist/server/app-ssr-entry.js +22 -7
- package/dist/server/app-ssr-entry.js.map +1 -1
- package/dist/server/app-ssr-error-meta.js +3 -3
- package/dist/server/app-ssr-error-meta.js.map +1 -1
- package/dist/server/app-ssr-stream.d.ts +2 -1
- package/dist/server/app-ssr-stream.js +176 -31
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/client-trace-metadata.d.ts +31 -0
- package/dist/server/client-trace-metadata.js +83 -0
- package/dist/server/client-trace-metadata.js.map +1 -0
- package/dist/server/cookie-utils.d.ts +13 -0
- package/dist/server/cookie-utils.js +20 -0
- package/dist/server/cookie-utils.js.map +1 -0
- package/dist/server/dev-server.d.ts +8 -1
- package/dist/server/dev-server.js +34 -5
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/html.d.ts +2 -1
- package/dist/server/html.js +6 -1
- package/dist/server/html.js.map +1 -1
- package/dist/server/isr-cache.d.ts +7 -5
- package/dist/server/isr-cache.js +17 -6
- package/dist/server/isr-cache.js.map +1 -1
- package/dist/server/middleware-runtime.js +1 -2
- package/dist/server/middleware-runtime.js.map +1 -1
- package/dist/server/pages-document-initial-props.d.ts +7 -0
- package/dist/server/pages-document-initial-props.js +14 -0
- package/dist/server/pages-document-initial-props.js.map +1 -0
- package/dist/server/pages-page-data.js +3 -0
- package/dist/server/pages-page-data.js.map +1 -1
- package/dist/server/pages-page-method.d.ts +48 -0
- package/dist/server/pages-page-method.js +19 -0
- package/dist/server/pages-page-method.js.map +1 -0
- package/dist/server/pages-page-response.d.ts +6 -0
- package/dist/server/pages-page-response.js +10 -3
- package/dist/server/pages-page-response.js.map +1 -1
- package/dist/server/pages-serializable-props.d.ts +25 -0
- package/dist/server/pages-serializable-props.js +69 -0
- package/dist/server/pages-serializable-props.js.map +1 -0
- package/dist/server/prod-server.js +3 -0
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/server-action-not-found.js +3 -2
- package/dist/server/server-action-not-found.js.map +1 -1
- package/dist/server/static-file-cache.js +2 -1
- package/dist/server/static-file-cache.js.map +1 -1
- package/dist/shims/app-router-scroll-state.d.ts +4 -2
- package/dist/shims/app-router-scroll-state.js +16 -3
- package/dist/shims/app-router-scroll-state.js.map +1 -1
- package/dist/shims/app-router-scroll.d.ts +16 -2
- package/dist/shims/app-router-scroll.js +18 -3
- package/dist/shims/app-router-scroll.js.map +1 -1
- package/dist/shims/cache.d.ts +6 -0
- package/dist/shims/cache.js +7 -0
- package/dist/shims/cache.js.map +1 -1
- package/dist/shims/error.js +3 -0
- package/dist/shims/error.js.map +1 -1
- package/dist/shims/headers.d.ts +7 -0
- package/dist/shims/headers.js +9 -1
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/internal/app-route-detection.d.ts +37 -0
- package/dist/shims/internal/app-route-detection.js +69 -0
- package/dist/shims/internal/app-route-detection.js.map +1 -0
- package/dist/shims/link.d.ts +18 -2
- package/dist/shims/link.js +70 -6
- package/dist/shims/link.js.map +1 -1
- package/dist/shims/metadata.d.ts +7 -6
- package/dist/shims/metadata.js +9 -5
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation.d.ts +1 -2
- package/dist/shims/navigation.js +63 -12
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/router.d.ts +5 -0
- package/dist/shims/router.js +14 -4
- package/dist/shims/router.js.map +1 -1
- package/dist/shims/script.d.ts +11 -1
- package/dist/shims/script.js +75 -6
- package/dist/shims/script.js.map +1 -1
- package/dist/utils/path.d.ts +13 -0
- package/dist/utils/path.js +16 -0
- package/dist/utils/path.js.map +1 -0
- package/package.json +1 -1
|
@@ -53,8 +53,7 @@ declare function setNavigationContext(ctx: NavigationContext | null): void;
|
|
|
53
53
|
declare const __basePath: string;
|
|
54
54
|
/** Maximum number of entries in the RSC prefetch cache. */
|
|
55
55
|
declare const MAX_PREFETCH_CACHE_SIZE = 50;
|
|
56
|
-
|
|
57
|
-
declare const PREFETCH_CACHE_TTL = 30000;
|
|
56
|
+
declare const PREFETCH_CACHE_TTL: number;
|
|
58
57
|
/** A buffered RSC response stored as an ArrayBuffer for replay. */
|
|
59
58
|
type CachedRscResponse = {
|
|
60
59
|
compatibilityIdHeader?: string | null;
|
package/dist/shims/navigation.js
CHANGED
|
@@ -2,11 +2,11 @@ import { stripBasePath } from "../utils/base-path.js";
|
|
|
2
2
|
import { VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_PARAMS_HEADER } from "../server/headers.js";
|
|
3
3
|
import { assertSafeNavigationUrl } from "./url-safety.js";
|
|
4
4
|
import { AppElementsWire } from "../server/app-elements-wire.js";
|
|
5
|
+
import "../server/app-elements.js";
|
|
5
6
|
import { isAbsoluteOrProtocolRelativeUrl, isHashOnlyBrowserUrlChange, toBrowserNavigationHref, toSameOriginAppPath, withBasePath } from "./url-utils.js";
|
|
6
7
|
import { scrollToHashTarget } from "./hash-scroll.js";
|
|
7
8
|
import { getNavigationRuntime, hasAppNavigationRuntime } from "../client/navigation-runtime.js";
|
|
8
9
|
import { notifyAppRouterTransitionStart } from "../client/instrumentation-client-state.js";
|
|
9
|
-
import "../server/app-elements.js";
|
|
10
10
|
import { resolveManifestNavigationInterceptionContext } from "../server/app-browser-interception-context.js";
|
|
11
11
|
import { createExternalHistoryStatePreservingMetadata } from "../server/app-history-state.js";
|
|
12
12
|
import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, createRscRequestHeaders, createRscRequestUrl } from "../server/app-rsc-cache-busting.js";
|
|
@@ -140,8 +140,28 @@ const isServer = typeof window === "undefined";
|
|
|
140
140
|
const __basePath = process.env.__NEXT_ROUTER_BASEPATH ?? "";
|
|
141
141
|
/** Maximum number of entries in the RSC prefetch cache. */
|
|
142
142
|
const MAX_PREFETCH_CACHE_SIZE = 50;
|
|
143
|
-
/**
|
|
144
|
-
|
|
143
|
+
/**
|
|
144
|
+
* TTL for prefetch cache entries in ms.
|
|
145
|
+
*
|
|
146
|
+
* Mirrors Next.js' `STATIC_STALETIME_MS` derivation. The plugin injects
|
|
147
|
+
* `process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME` from
|
|
148
|
+
* `experimental.staleTimes.static` (in seconds) at build time; we convert
|
|
149
|
+
* to ms here.
|
|
150
|
+
*
|
|
151
|
+
* Falls back to vinext's historical default of 30s when the env var is
|
|
152
|
+
* absent (e.g. unit tests that import this module without going through
|
|
153
|
+
* the plugin's `define` pipeline). When the plugin is active and the user
|
|
154
|
+
* has not set `experimental.staleTimes`, Next.js' 300s default applies
|
|
155
|
+
* (see `resolveStaleTimes` in `config/next-config.ts`).
|
|
156
|
+
*/
|
|
157
|
+
function resolvePrefetchCacheTtl() {
|
|
158
|
+
const raw = process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME;
|
|
159
|
+
if (raw === void 0 || raw === "") return 3e4;
|
|
160
|
+
const seconds = Number(raw);
|
|
161
|
+
if (!Number.isFinite(seconds) || seconds < 0) return 3e4;
|
|
162
|
+
return seconds * 1e3;
|
|
163
|
+
}
|
|
164
|
+
const PREFETCH_CACHE_TTL = resolvePrefetchCacheTtl();
|
|
145
165
|
function getCurrentInterceptionContext() {
|
|
146
166
|
if (isServer) return null;
|
|
147
167
|
return stripBasePath(window.location.pathname, __basePath);
|
|
@@ -189,7 +209,7 @@ function evictPrefetchCacheIfNeeded() {
|
|
|
189
209
|
if (cache.size < 50) return;
|
|
190
210
|
const now = Date.now();
|
|
191
211
|
const prefetched = getPrefetchedUrls();
|
|
192
|
-
for (const [key, entry] of cache) if (now - entry.timestamp >=
|
|
212
|
+
for (const [key, entry] of cache) if (now - entry.timestamp >= PREFETCH_CACHE_TTL) deletePrefetchCacheEntry(cache, prefetched, key, entry, true);
|
|
193
213
|
while (cache.size >= 50) {
|
|
194
214
|
const oldest = cache.keys().next().value;
|
|
195
215
|
if (oldest !== void 0) {
|
|
@@ -394,7 +414,7 @@ function consumePrefetchResponse(rscUrl, interceptionContext = null, mountedSlot
|
|
|
394
414
|
deletePrefetchCacheEntry(cache, getPrefetchedUrls(), cacheKey, entry, false);
|
|
395
415
|
if (entry.snapshot) {
|
|
396
416
|
if ((entry.snapshot.mountedSlotsHeader ?? null) !== mountedSlotsHeader) return null;
|
|
397
|
-
if (Date.now() - entry.timestamp >=
|
|
417
|
+
if (Date.now() - entry.timestamp >= PREFETCH_CACHE_TTL) return null;
|
|
398
418
|
return entry.snapshot;
|
|
399
419
|
}
|
|
400
420
|
return null;
|
|
@@ -807,7 +827,7 @@ async function navigateClientSide(href, mode, scroll, programmaticTransition = f
|
|
|
807
827
|
if (!scroll) clearAppRouterScrollIntent();
|
|
808
828
|
const appNavigate = getNavigationRuntime()?.functions.navigate;
|
|
809
829
|
try {
|
|
810
|
-
if (appNavigate) await appNavigate(fullHref, 0, "navigate", mode, void 0, programmaticTransition);
|
|
830
|
+
if (appNavigate) await appNavigate(fullHref, 0, "navigate", mode, void 0, programmaticTransition, void 0, scrollIntent);
|
|
811
831
|
else {
|
|
812
832
|
if (mode === "replace") replaceHistoryStateWithoutNotify(null, "", fullHref);
|
|
813
833
|
else pushHistoryStateWithoutNotify(null, "", fullHref);
|
|
@@ -822,6 +842,22 @@ async function navigateClientSide(href, mode, scroll, programmaticTransition = f
|
|
|
822
842
|
if (fallbackIntent) applyAppRouterScrollFallback(fallbackIntent);
|
|
823
843
|
}
|
|
824
844
|
}
|
|
845
|
+
let scheduledAppRouterNavigationCount = 0;
|
|
846
|
+
function trackScheduledAppRouterNavigation() {
|
|
847
|
+
scheduledAppRouterNavigationCount += 1;
|
|
848
|
+
let released = false;
|
|
849
|
+
return () => {
|
|
850
|
+
if (released) return;
|
|
851
|
+
released = true;
|
|
852
|
+
scheduledAppRouterNavigationCount = Math.max(0, scheduledAppRouterNavigationCount - 1);
|
|
853
|
+
};
|
|
854
|
+
}
|
|
855
|
+
function hasScheduledAppRouterNavigation() {
|
|
856
|
+
return scheduledAppRouterNavigationCount > 0;
|
|
857
|
+
}
|
|
858
|
+
function releaseScheduledAppRouterNavigationAfterCurrentTask(release) {
|
|
859
|
+
queueMicrotask(release);
|
|
860
|
+
}
|
|
825
861
|
/**
|
|
826
862
|
* Public App Router instance, exposed for the browser entry so it can wire
|
|
827
863
|
* `window.next.router` to the same singleton returned from `useRouter()`.
|
|
@@ -834,16 +870,30 @@ const appRouterInstance = {
|
|
|
834
870
|
push(href, options) {
|
|
835
871
|
assertSafeNavigationUrl(href);
|
|
836
872
|
if (isServer) return;
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
873
|
+
const releaseNavigation = trackScheduledAppRouterNavigation();
|
|
874
|
+
try {
|
|
875
|
+
React$1.startTransition(() => {
|
|
876
|
+
navigateClientSide(href, "push", options?.scroll !== false, true);
|
|
877
|
+
});
|
|
878
|
+
} catch (error) {
|
|
879
|
+
releaseNavigation();
|
|
880
|
+
throw error;
|
|
881
|
+
}
|
|
882
|
+
releaseScheduledAppRouterNavigationAfterCurrentTask(releaseNavigation);
|
|
840
883
|
},
|
|
841
884
|
replace(href, options) {
|
|
842
885
|
assertSafeNavigationUrl(href);
|
|
843
886
|
if (isServer) return;
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
887
|
+
const releaseNavigation = trackScheduledAppRouterNavigation();
|
|
888
|
+
try {
|
|
889
|
+
React$1.startTransition(() => {
|
|
890
|
+
navigateClientSide(href, "replace", options?.scroll !== false, true);
|
|
891
|
+
});
|
|
892
|
+
} catch (error) {
|
|
893
|
+
releaseNavigation();
|
|
894
|
+
throw error;
|
|
895
|
+
}
|
|
896
|
+
releaseScheduledAppRouterNavigationAfterCurrentTask(releaseNavigation);
|
|
847
897
|
},
|
|
848
898
|
back() {
|
|
849
899
|
if (isServer) return;
|
|
@@ -856,6 +906,7 @@ const appRouterInstance = {
|
|
|
856
906
|
refresh() {
|
|
857
907
|
if (isServer) return;
|
|
858
908
|
getNavigationRuntime()?.functions.clearNavigationCaches?.();
|
|
909
|
+
if (hasScheduledAppRouterNavigation()) return;
|
|
859
910
|
const rscNavigate = getNavigationRuntime()?.functions.navigate;
|
|
860
911
|
if (rscNavigate) {
|
|
861
912
|
const navigate = () => {
|