vinext 0.0.0 → 0.0.1
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 +1 -0
- package/dist/build/static-export.d.ts +78 -0
- package/dist/build/static-export.d.ts.map +1 -0
- package/dist/build/static-export.js +553 -0
- package/dist/build/static-export.js.map +1 -0
- package/dist/check.d.ts +52 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +483 -0
- package/dist/check.js.map +1 -0
- package/dist/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +565 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/entry.d.ts +2 -0
- package/dist/client/entry.d.ts.map +1 -0
- package/dist/client/entry.js +85 -0
- package/dist/client/entry.js.map +1 -0
- package/dist/cloudflare/index.d.ts +8 -0
- package/dist/cloudflare/index.d.ts.map +1 -0
- package/dist/cloudflare/index.js +8 -0
- package/dist/cloudflare/index.js.map +1 -0
- package/dist/cloudflare/kv-cache-handler.d.ts +68 -0
- package/dist/cloudflare/kv-cache-handler.d.ts.map +1 -0
- package/dist/cloudflare/kv-cache-handler.js +304 -0
- package/dist/cloudflare/kv-cache-handler.js.map +1 -0
- package/dist/cloudflare/tpr.d.ts +78 -0
- package/dist/cloudflare/tpr.d.ts.map +1 -0
- package/dist/cloudflare/tpr.js +672 -0
- package/dist/cloudflare/tpr.js.map +1 -0
- package/dist/config/config-matchers.d.ts +106 -0
- package/dist/config/config-matchers.d.ts.map +1 -0
- package/dist/config/config-matchers.js +499 -0
- package/dist/config/config-matchers.js.map +1 -0
- package/dist/config/next-config.d.ts +153 -0
- package/dist/config/next-config.d.ts.map +1 -0
- package/dist/config/next-config.js +274 -0
- package/dist/config/next-config.js.map +1 -0
- package/dist/deploy.d.ts +87 -0
- package/dist/deploy.d.ts.map +1 -0
- package/dist/deploy.js +644 -0
- package/dist/deploy.js.map +1 -0
- package/dist/index.d.ts +156 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3287 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +55 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +201 -0
- package/dist/init.js.map +1 -0
- package/dist/routing/app-router.d.ts +96 -0
- package/dist/routing/app-router.d.ts.map +1 -0
- package/dist/routing/app-router.js +815 -0
- package/dist/routing/app-router.js.map +1 -0
- package/dist/routing/pages-router.d.ts +52 -0
- package/dist/routing/pages-router.d.ts.map +1 -0
- package/dist/routing/pages-router.js +239 -0
- package/dist/routing/pages-router.js.map +1 -0
- package/dist/server/api-handler.d.ts +18 -0
- package/dist/server/api-handler.d.ts.map +1 -0
- package/dist/server/api-handler.js +169 -0
- package/dist/server/api-handler.js.map +1 -0
- package/dist/server/app-dev-server.d.ts +42 -0
- package/dist/server/app-dev-server.d.ts.map +1 -0
- package/dist/server/app-dev-server.js +2718 -0
- package/dist/server/app-dev-server.js.map +1 -0
- package/dist/server/app-router-entry.d.ts +18 -0
- package/dist/server/app-router-entry.d.ts.map +1 -0
- package/dist/server/app-router-entry.js +34 -0
- package/dist/server/app-router-entry.js.map +1 -0
- package/dist/server/dev-server.d.ts +40 -0
- package/dist/server/dev-server.d.ts.map +1 -0
- package/dist/server/dev-server.js +758 -0
- package/dist/server/dev-server.js.map +1 -0
- package/dist/server/html.d.ts +22 -0
- package/dist/server/html.d.ts.map +1 -0
- package/dist/server/html.js +29 -0
- package/dist/server/html.js.map +1 -0
- package/dist/server/image-optimization.d.ts +56 -0
- package/dist/server/image-optimization.d.ts.map +1 -0
- package/dist/server/image-optimization.js +103 -0
- package/dist/server/image-optimization.js.map +1 -0
- package/dist/server/instrumentation.d.ts +68 -0
- package/dist/server/instrumentation.d.ts.map +1 -0
- package/dist/server/instrumentation.js +90 -0
- package/dist/server/instrumentation.js.map +1 -0
- package/dist/server/isr-cache.d.ts +61 -0
- package/dist/server/isr-cache.d.ts.map +1 -0
- package/dist/server/isr-cache.js +134 -0
- package/dist/server/isr-cache.js.map +1 -0
- package/dist/server/metadata-routes.d.ts +103 -0
- package/dist/server/metadata-routes.d.ts.map +1 -0
- package/dist/server/metadata-routes.js +270 -0
- package/dist/server/metadata-routes.js.map +1 -0
- package/dist/server/middleware.d.ts +77 -0
- package/dist/server/middleware.d.ts.map +1 -0
- package/dist/server/middleware.js +228 -0
- package/dist/server/middleware.js.map +1 -0
- package/dist/server/prod-server.d.ts +78 -0
- package/dist/server/prod-server.d.ts.map +1 -0
- package/dist/server/prod-server.js +712 -0
- package/dist/server/prod-server.js.map +1 -0
- package/dist/shims/amp.d.ts +17 -0
- package/dist/shims/amp.d.ts.map +1 -0
- package/dist/shims/amp.js +21 -0
- package/dist/shims/amp.js.map +1 -0
- package/dist/shims/app.d.ts +12 -0
- package/dist/shims/app.d.ts.map +1 -0
- package/dist/shims/app.js +2 -0
- package/dist/shims/app.js.map +1 -0
- package/dist/shims/cache-runtime.d.ts +68 -0
- package/dist/shims/cache-runtime.d.ts.map +1 -0
- package/dist/shims/cache-runtime.js +437 -0
- package/dist/shims/cache-runtime.js.map +1 -0
- package/dist/shims/cache.d.ts +243 -0
- package/dist/shims/cache.d.ts.map +1 -0
- package/dist/shims/cache.js +415 -0
- package/dist/shims/cache.js.map +1 -0
- package/dist/shims/client-only.d.ts +18 -0
- package/dist/shims/client-only.d.ts.map +1 -0
- package/dist/shims/client-only.js +18 -0
- package/dist/shims/client-only.js.map +1 -0
- package/dist/shims/config.d.ts +27 -0
- package/dist/shims/config.d.ts.map +1 -0
- package/dist/shims/config.js +30 -0
- package/dist/shims/config.js.map +1 -0
- package/dist/shims/constants.d.ts +13 -0
- package/dist/shims/constants.d.ts.map +1 -0
- package/dist/shims/constants.js +13 -0
- package/dist/shims/constants.js.map +1 -0
- package/dist/shims/document.d.ts +33 -0
- package/dist/shims/document.d.ts.map +1 -0
- package/dist/shims/document.js +32 -0
- package/dist/shims/document.js.map +1 -0
- package/dist/shims/dynamic.d.ts +33 -0
- package/dist/shims/dynamic.d.ts.map +1 -0
- package/dist/shims/dynamic.js +148 -0
- package/dist/shims/dynamic.js.map +1 -0
- package/dist/shims/error-boundary.d.ts +33 -0
- package/dist/shims/error-boundary.d.ts.map +1 -0
- package/dist/shims/error-boundary.js +88 -0
- package/dist/shims/error-boundary.js.map +1 -0
- package/dist/shims/error.d.ts +16 -0
- package/dist/shims/error.d.ts.map +1 -0
- package/dist/shims/error.js +45 -0
- package/dist/shims/error.js.map +1 -0
- package/dist/shims/fetch-cache.d.ts +61 -0
- package/dist/shims/fetch-cache.d.ts.map +1 -0
- package/dist/shims/fetch-cache.js +307 -0
- package/dist/shims/fetch-cache.js.map +1 -0
- package/dist/shims/font-google.d.ts +122 -0
- package/dist/shims/font-google.d.ts.map +1 -0
- package/dist/shims/font-google.js +387 -0
- package/dist/shims/font-google.js.map +1 -0
- package/dist/shims/font-local.d.ts +61 -0
- package/dist/shims/font-local.d.ts.map +1 -0
- package/dist/shims/font-local.js +303 -0
- package/dist/shims/font-local.js.map +1 -0
- package/dist/shims/form.d.ts +30 -0
- package/dist/shims/form.d.ts.map +1 -0
- package/dist/shims/form.js +78 -0
- package/dist/shims/form.js.map +1 -0
- package/dist/shims/head-state.d.ts +11 -0
- package/dist/shims/head-state.d.ts.map +1 -0
- package/dist/shims/head-state.js +47 -0
- package/dist/shims/head-state.js.map +1 -0
- package/dist/shims/head.d.ts +28 -0
- package/dist/shims/head.d.ts.map +1 -0
- package/dist/shims/head.js +148 -0
- package/dist/shims/head.js.map +1 -0
- package/dist/shims/headers.d.ts +150 -0
- package/dist/shims/headers.d.ts.map +1 -0
- package/dist/shims/headers.js +412 -0
- package/dist/shims/headers.js.map +1 -0
- package/dist/shims/image-config.d.ts +30 -0
- package/dist/shims/image-config.d.ts.map +1 -0
- package/dist/shims/image-config.js +91 -0
- package/dist/shims/image-config.js.map +1 -0
- package/dist/shims/image.d.ts +63 -0
- package/dist/shims/image.d.ts.map +1 -0
- package/dist/shims/image.js +284 -0
- package/dist/shims/image.js.map +1 -0
- package/dist/shims/internal/api-utils.d.ts +12 -0
- package/dist/shims/internal/api-utils.d.ts.map +1 -0
- package/dist/shims/internal/api-utils.js +7 -0
- package/dist/shims/internal/api-utils.js.map +1 -0
- package/dist/shims/internal/app-router-context.d.ts +21 -0
- package/dist/shims/internal/app-router-context.d.ts.map +1 -0
- package/dist/shims/internal/app-router-context.js +15 -0
- package/dist/shims/internal/app-router-context.js.map +1 -0
- package/dist/shims/internal/cookies.d.ts +9 -0
- package/dist/shims/internal/cookies.d.ts.map +1 -0
- package/dist/shims/internal/cookies.js +9 -0
- package/dist/shims/internal/cookies.js.map +1 -0
- package/dist/shims/internal/router-context.d.ts +2 -0
- package/dist/shims/internal/router-context.d.ts.map +1 -0
- package/dist/shims/internal/router-context.js +9 -0
- package/dist/shims/internal/router-context.js.map +1 -0
- package/dist/shims/internal/utils.d.ts +48 -0
- package/dist/shims/internal/utils.d.ts.map +1 -0
- package/dist/shims/internal/utils.js +35 -0
- package/dist/shims/internal/utils.js.map +1 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +12 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts.map +1 -0
- package/dist/shims/internal/work-unit-async-storage.js +13 -0
- package/dist/shims/internal/work-unit-async-storage.js.map +1 -0
- package/dist/shims/layout-segment-context.d.ts +21 -0
- package/dist/shims/layout-segment-context.d.ts.map +1 -0
- package/dist/shims/layout-segment-context.js +27 -0
- package/dist/shims/layout-segment-context.js.map +1 -0
- package/dist/shims/legacy-image.d.ts +52 -0
- package/dist/shims/legacy-image.d.ts.map +1 -0
- package/dist/shims/legacy-image.js +46 -0
- package/dist/shims/legacy-image.js.map +1 -0
- package/dist/shims/link.d.ts +48 -0
- package/dist/shims/link.d.ts.map +1 -0
- package/dist/shims/link.js +395 -0
- package/dist/shims/link.js.map +1 -0
- package/dist/shims/metadata.d.ts +184 -0
- package/dist/shims/metadata.d.ts.map +1 -0
- package/dist/shims/metadata.js +472 -0
- package/dist/shims/metadata.js.map +1 -0
- package/dist/shims/navigation-state.d.ts +14 -0
- package/dist/shims/navigation-state.d.ts.map +1 -0
- package/dist/shims/navigation-state.js +77 -0
- package/dist/shims/navigation-state.js.map +1 -0
- package/dist/shims/navigation.d.ts +201 -0
- package/dist/shims/navigation.d.ts.map +1 -0
- package/dist/shims/navigation.js +672 -0
- package/dist/shims/navigation.js.map +1 -0
- package/dist/shims/og.d.ts +20 -0
- package/dist/shims/og.d.ts.map +1 -0
- package/dist/shims/og.js +19 -0
- package/dist/shims/og.js.map +1 -0
- package/dist/shims/router-state.d.ts +11 -0
- package/dist/shims/router-state.d.ts.map +1 -0
- package/dist/shims/router-state.js +56 -0
- package/dist/shims/router-state.js.map +1 -0
- package/dist/shims/router.d.ts +103 -0
- package/dist/shims/router.d.ts.map +1 -0
- package/dist/shims/router.js +536 -0
- package/dist/shims/router.js.map +1 -0
- package/dist/shims/script.d.ts +58 -0
- package/dist/shims/script.d.ts.map +1 -0
- package/dist/shims/script.js +163 -0
- package/dist/shims/script.js.map +1 -0
- package/dist/shims/server-only.d.ts +19 -0
- package/dist/shims/server-only.d.ts.map +1 -0
- package/dist/shims/server-only.js +19 -0
- package/dist/shims/server-only.js.map +1 -0
- package/dist/shims/server.d.ts +178 -0
- package/dist/shims/server.d.ts.map +1 -0
- package/dist/shims/server.js +377 -0
- package/dist/shims/server.js.map +1 -0
- package/dist/shims/web-vitals.d.ts +24 -0
- package/dist/shims/web-vitals.d.ts.map +1 -0
- package/dist/shims/web-vitals.js +17 -0
- package/dist/shims/web-vitals.js.map +1 -0
- package/dist/utils/hash.d.ts +6 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +20 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/project.d.ts +36 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +112 -0
- package/dist/utils/project.js.map +1 -0
- package/dist/utils/query.d.ts +10 -0
- package/dist/utils/query.d.ts.map +1 -0
- package/dist/utils/query.js +27 -0
- package/dist/utils/query.js.map +1 -0
- package/package.json +65 -7
- package/index.js +0 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* next/head shim
|
|
3
|
+
*
|
|
4
|
+
* In the Pages Router, <Head> manages document <head> elements.
|
|
5
|
+
* - On the server: collects elements into a module-level array that the
|
|
6
|
+
* dev-server reads after render and injects into the HTML <head>.
|
|
7
|
+
* - On the client: uses useEffect + DOM manipulation.
|
|
8
|
+
*/
|
|
9
|
+
import { useEffect, Children, isValidElement } from "react";
|
|
10
|
+
// --- SSR head collection ---
|
|
11
|
+
// State uses a registration pattern so this module can be bundled for the
|
|
12
|
+
// browser. The ALS-backed implementation lives in head-state.ts (server-only).
|
|
13
|
+
let _ssrHeadElements = [];
|
|
14
|
+
let _getSSRHeadElements = () => _ssrHeadElements;
|
|
15
|
+
let _resetSSRHeadImpl = () => { _ssrHeadElements = []; };
|
|
16
|
+
/**
|
|
17
|
+
* Register ALS-backed state accessors. Called by head-state.ts on import.
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export function _registerHeadStateAccessors(accessors) {
|
|
21
|
+
_getSSRHeadElements = accessors.getSSRHeadElements;
|
|
22
|
+
_resetSSRHeadImpl = accessors.resetSSRHead;
|
|
23
|
+
}
|
|
24
|
+
/** Reset the SSR head collector. Call before render. */
|
|
25
|
+
export function resetSSRHead() {
|
|
26
|
+
_resetSSRHeadImpl();
|
|
27
|
+
}
|
|
28
|
+
/** Get collected head HTML. Call after render. */
|
|
29
|
+
export function getSSRHeadHTML() {
|
|
30
|
+
return _getSSRHeadElements().join("\n ");
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Tags allowed inside <head>. Anything else is silently dropped.
|
|
34
|
+
* This prevents injection of dangerous elements like <iframe>, <object>, etc.
|
|
35
|
+
*/
|
|
36
|
+
const ALLOWED_HEAD_TAGS = new Set([
|
|
37
|
+
"title", "meta", "link", "style", "script", "base", "noscript",
|
|
38
|
+
]);
|
|
39
|
+
/**
|
|
40
|
+
* Convert a React element to an HTML string for SSR head injection.
|
|
41
|
+
* Returns an empty string for disallowed tag types.
|
|
42
|
+
*/
|
|
43
|
+
function reactElementToHTML(child) {
|
|
44
|
+
const tag = child.type;
|
|
45
|
+
if (!ALLOWED_HEAD_TAGS.has(tag)) {
|
|
46
|
+
if (process.env.NODE_ENV !== "production") {
|
|
47
|
+
console.warn(`[vinext] <Head> ignoring disallowed tag <${tag}>. ` +
|
|
48
|
+
`Only ${[...ALLOWED_HEAD_TAGS].join(", ")} are allowed.`);
|
|
49
|
+
}
|
|
50
|
+
return "";
|
|
51
|
+
}
|
|
52
|
+
const props = child.props;
|
|
53
|
+
const attrs = [];
|
|
54
|
+
let innerHTML = "";
|
|
55
|
+
for (const [key, value] of Object.entries(props)) {
|
|
56
|
+
if (key === "children") {
|
|
57
|
+
if (typeof value === "string") {
|
|
58
|
+
innerHTML = escapeHTML(value);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (key === "dangerouslySetInnerHTML") {
|
|
62
|
+
// Intentionally raw — developer explicitly opted in
|
|
63
|
+
const html = value;
|
|
64
|
+
if (html?.__html)
|
|
65
|
+
innerHTML = html.__html;
|
|
66
|
+
}
|
|
67
|
+
else if (key === "className") {
|
|
68
|
+
attrs.push(`class="${escapeAttr(String(value))}"`);
|
|
69
|
+
}
|
|
70
|
+
else if (typeof value === "string") {
|
|
71
|
+
attrs.push(`${key}="${escapeAttr(value)}"`);
|
|
72
|
+
}
|
|
73
|
+
else if (typeof value === "boolean" && value) {
|
|
74
|
+
attrs.push(key);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const attrStr = attrs.length ? " " + attrs.join(" ") : "";
|
|
78
|
+
// Self-closing tags
|
|
79
|
+
const selfClosing = ["meta", "link", "base"];
|
|
80
|
+
if (selfClosing.includes(tag)) {
|
|
81
|
+
return `<${tag}${attrStr} data-vinext-head="true" />`;
|
|
82
|
+
}
|
|
83
|
+
return `<${tag}${attrStr} data-vinext-head="true">${innerHTML}</${tag}>`;
|
|
84
|
+
}
|
|
85
|
+
function escapeHTML(s) {
|
|
86
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
87
|
+
}
|
|
88
|
+
export function escapeAttr(s) {
|
|
89
|
+
return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
90
|
+
}
|
|
91
|
+
// --- Component ---
|
|
92
|
+
function Head({ children }) {
|
|
93
|
+
// SSR path: collect elements for later injection
|
|
94
|
+
if (typeof window === "undefined") {
|
|
95
|
+
Children.forEach(children, (child) => {
|
|
96
|
+
if (!isValidElement(child))
|
|
97
|
+
return;
|
|
98
|
+
if (typeof child.type !== "string")
|
|
99
|
+
return;
|
|
100
|
+
const html = reactElementToHTML(child);
|
|
101
|
+
if (html)
|
|
102
|
+
_getSSRHeadElements().push(html);
|
|
103
|
+
});
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
// Client path: useEffect DOM manipulation (runs after hydration)
|
|
107
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
const elements = [];
|
|
110
|
+
// Remove previous vinext-managed head elements
|
|
111
|
+
document
|
|
112
|
+
.querySelectorAll("[data-vinext-head]")
|
|
113
|
+
.forEach((el) => el.remove());
|
|
114
|
+
Children.forEach(children, (child) => {
|
|
115
|
+
if (!isValidElement(child))
|
|
116
|
+
return;
|
|
117
|
+
if (typeof child.type !== "string")
|
|
118
|
+
return;
|
|
119
|
+
if (!ALLOWED_HEAD_TAGS.has(child.type))
|
|
120
|
+
return;
|
|
121
|
+
const domEl = document.createElement(child.type);
|
|
122
|
+
const props = child.props;
|
|
123
|
+
for (const [key, value] of Object.entries(props)) {
|
|
124
|
+
if (key === "children" && typeof value === "string") {
|
|
125
|
+
domEl.textContent = value;
|
|
126
|
+
}
|
|
127
|
+
else if (key === "dangerouslySetInnerHTML") {
|
|
128
|
+
// skip for safety
|
|
129
|
+
}
|
|
130
|
+
else if (key === "className") {
|
|
131
|
+
domEl.setAttribute("class", String(value));
|
|
132
|
+
}
|
|
133
|
+
else if (key !== "children" && typeof value === "string") {
|
|
134
|
+
domEl.setAttribute(key, value);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
domEl.setAttribute("data-vinext-head", "true");
|
|
138
|
+
document.head.appendChild(domEl);
|
|
139
|
+
elements.push(domEl);
|
|
140
|
+
});
|
|
141
|
+
return () => {
|
|
142
|
+
elements.forEach((el) => el.remove());
|
|
143
|
+
};
|
|
144
|
+
}, [children]);
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
export default Head;
|
|
148
|
+
//# sourceMappingURL=head.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head.js","sourceRoot":"","sources":["../../src/shims/head.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* next/headers shim
|
|
3
|
+
*
|
|
4
|
+
* Provides cookies() and headers() functions for App Router Server Components.
|
|
5
|
+
* These read from a request context set by the RSC handler before rendering.
|
|
6
|
+
*
|
|
7
|
+
* In Next.js 15+, cookies() and headers() return Promises (async).
|
|
8
|
+
* We support both the sync (legacy) and async patterns.
|
|
9
|
+
*/
|
|
10
|
+
interface HeadersContext {
|
|
11
|
+
headers: Headers;
|
|
12
|
+
cookies: Map<string, string>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Dynamic usage flag — set when a component calls connection(), cookies(),
|
|
16
|
+
* headers(), or noStore() during rendering. When true, ISR caching is
|
|
17
|
+
* bypassed and the response gets Cache-Control: no-store.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Mark the current render as requiring dynamic (uncached) rendering.
|
|
21
|
+
* Called by connection(), cookies(), headers(), and noStore().
|
|
22
|
+
*/
|
|
23
|
+
export declare function markDynamicUsage(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Check and reset the dynamic usage flag.
|
|
26
|
+
* Called by the server after rendering to decide on caching.
|
|
27
|
+
*/
|
|
28
|
+
export declare function consumeDynamicUsage(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Set the headers/cookies context for the current RSC render.
|
|
31
|
+
* Called by the framework's RSC entry before rendering each request.
|
|
32
|
+
*
|
|
33
|
+
* NOTE: This uses enterWith() which only works reliably within the same
|
|
34
|
+
* synchronous call stack. For full async context propagation (needed for
|
|
35
|
+
* RSC streaming), use runWithHeadersContext() instead.
|
|
36
|
+
*/
|
|
37
|
+
export declare function setHeadersContext(ctx: HeadersContext | null): void;
|
|
38
|
+
/**
|
|
39
|
+
* Run a function with headers context, ensuring the context propagates
|
|
40
|
+
* through all async operations (including RSC streaming).
|
|
41
|
+
*
|
|
42
|
+
* IMPORTANT: RSC rendering is streaming - renderToReadableStream() returns
|
|
43
|
+
* immediately but component execution happens later when the stream is consumed.
|
|
44
|
+
* AsyncLocalStorage.run() only maintains context within the callback scope,
|
|
45
|
+
* so by the time components actually render, we'd be outside that scope.
|
|
46
|
+
*
|
|
47
|
+
* Solution: We use enterWith() to set persistent context AND update the
|
|
48
|
+
* fallback state. This way, even after run() returns, getStore() still
|
|
49
|
+
* returns the right state (via enterWith), and if that fails, we have
|
|
50
|
+
* the fallback. For single-request-at-a-time scenarios (dev mode), this
|
|
51
|
+
* works correctly. For concurrent requests, the ALS should work.
|
|
52
|
+
*/
|
|
53
|
+
export declare function runWithHeadersContext<T>(ctx: HeadersContext, fn: () => T | Promise<T>): T | Promise<T>;
|
|
54
|
+
/**
|
|
55
|
+
* Apply middleware-forwarded request headers to the current headers context.
|
|
56
|
+
*
|
|
57
|
+
* When Next.js middleware calls `NextResponse.next({ request: { headers } })`,
|
|
58
|
+
* the modified headers are encoded as `x-middleware-request-<name>` on the
|
|
59
|
+
* middleware response. This function unpacks those prefixed headers and
|
|
60
|
+
* replaces the corresponding entries on the live `HeadersContext` so that
|
|
61
|
+
* subsequent calls to `headers()` / `cookies()` see the middleware changes.
|
|
62
|
+
*/
|
|
63
|
+
export declare function applyMiddlewareRequestHeaders(middlewareResponseHeaders: Headers): void;
|
|
64
|
+
/**
|
|
65
|
+
* Create a HeadersContext from a standard Request object.
|
|
66
|
+
*/
|
|
67
|
+
export declare function headersContextFromRequest(request: Request): HeadersContext;
|
|
68
|
+
/**
|
|
69
|
+
* Read-only Headers instance from the incoming request.
|
|
70
|
+
* Returns a Promise in Next.js 15+ style (but resolves synchronously since
|
|
71
|
+
* the context is already available).
|
|
72
|
+
*/
|
|
73
|
+
export declare function headers(): Promise<Headers>;
|
|
74
|
+
/**
|
|
75
|
+
* Cookie jar from the incoming request.
|
|
76
|
+
* Returns a ReadonlyRequestCookies-like object.
|
|
77
|
+
*/
|
|
78
|
+
export declare function cookies(): Promise<RequestCookies>;
|
|
79
|
+
/** Accumulated Set-Cookie headers from cookies().set() / .delete() calls */
|
|
80
|
+
/**
|
|
81
|
+
* Get and clear all pending Set-Cookie headers generated by cookies().set()/delete().
|
|
82
|
+
* Called by the framework after rendering to attach headers to the response.
|
|
83
|
+
*/
|
|
84
|
+
export declare function getAndClearPendingCookies(): string[];
|
|
85
|
+
/**
|
|
86
|
+
* Get any Set-Cookie header generated by draftMode().enable()/disable().
|
|
87
|
+
* Called by the framework after rendering to attach the header to the response.
|
|
88
|
+
*/
|
|
89
|
+
export declare function getDraftModeCookieHeader(): string | null;
|
|
90
|
+
interface DraftModeResult {
|
|
91
|
+
isEnabled: boolean;
|
|
92
|
+
enable(): void;
|
|
93
|
+
disable(): void;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Draft mode — check/toggle via a `__prerender_bypass` cookie.
|
|
97
|
+
*
|
|
98
|
+
* - `isEnabled`: true if the bypass cookie is present in the request
|
|
99
|
+
* - `enable()`: sets the bypass cookie (for Route Handlers)
|
|
100
|
+
* - `disable()`: clears the bypass cookie
|
|
101
|
+
*/
|
|
102
|
+
export declare function draftMode(): Promise<DraftModeResult>;
|
|
103
|
+
declare class RequestCookies {
|
|
104
|
+
private _cookies;
|
|
105
|
+
constructor(cookies: Map<string, string>);
|
|
106
|
+
get(name: string): {
|
|
107
|
+
name: string;
|
|
108
|
+
value: string;
|
|
109
|
+
} | undefined;
|
|
110
|
+
getAll(): Array<{
|
|
111
|
+
name: string;
|
|
112
|
+
value: string;
|
|
113
|
+
}>;
|
|
114
|
+
has(name: string): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Set a cookie. In Route Handlers and Server Actions, this produces
|
|
117
|
+
* a Set-Cookie header on the response.
|
|
118
|
+
*/
|
|
119
|
+
set(nameOrOptions: string | {
|
|
120
|
+
name: string;
|
|
121
|
+
value: string;
|
|
122
|
+
path?: string;
|
|
123
|
+
domain?: string;
|
|
124
|
+
maxAge?: number;
|
|
125
|
+
expires?: Date;
|
|
126
|
+
httpOnly?: boolean;
|
|
127
|
+
secure?: boolean;
|
|
128
|
+
sameSite?: "Strict" | "Lax" | "None";
|
|
129
|
+
}, value?: string, options?: {
|
|
130
|
+
path?: string;
|
|
131
|
+
domain?: string;
|
|
132
|
+
maxAge?: number;
|
|
133
|
+
expires?: Date;
|
|
134
|
+
httpOnly?: boolean;
|
|
135
|
+
secure?: boolean;
|
|
136
|
+
sameSite?: "Strict" | "Lax" | "None";
|
|
137
|
+
}): this;
|
|
138
|
+
/**
|
|
139
|
+
* Delete a cookie by setting it with Max-Age=0.
|
|
140
|
+
*/
|
|
141
|
+
delete(name: string): this;
|
|
142
|
+
get size(): number;
|
|
143
|
+
[Symbol.iterator](): IterableIterator<[string, {
|
|
144
|
+
name: string;
|
|
145
|
+
value: string;
|
|
146
|
+
}]>;
|
|
147
|
+
toString(): string;
|
|
148
|
+
}
|
|
149
|
+
export type { RequestCookies };
|
|
150
|
+
//# sourceMappingURL=headers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/shims/headers.ts"],"names":[],"mappings":"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"}
|