@tanstack/start-server-core 1.121.0-alpha.27 → 1.121.0-alpha.28
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/esm/constants.d.ts +3 -0
- package/dist/esm/constants.js +7 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/createStartHandler.d.ts +4 -7
- package/dist/esm/createStartHandler.js +169 -102
- package/dist/esm/createStartHandler.js.map +1 -1
- package/dist/esm/index.d.ts +6 -8
- package/dist/esm/index.js +10 -97
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loadVirtualModule.js +2 -0
- package/dist/esm/loadVirtualModule.js.map +1 -1
- package/dist/esm/request-response.d.ts +124 -0
- package/dist/esm/request-response.js +177 -0
- package/dist/esm/request-response.js.map +1 -0
- package/dist/esm/router-manifest.d.ts +1 -0
- package/dist/esm/router-manifest.js +17 -17
- package/dist/esm/router-manifest.js.map +1 -1
- package/dist/esm/server-functions-handler.js +6 -7
- package/dist/esm/server-functions-handler.js.map +1 -1
- package/dist/esm/serverRoute.d.ts +6 -2
- package/dist/esm/serverRoute.js +3 -2
- package/dist/esm/serverRoute.js.map +1 -1
- package/dist/esm/session.d.ts +66 -0
- package/dist/esm/virtual-modules.d.ts +2 -0
- package/dist/esm/virtual-modules.js +2 -1
- package/dist/esm/virtual-modules.js.map +1 -1
- package/package.json +9 -19
- package/src/constants.ts +3 -0
- package/src/createStartHandler.ts +241 -143
- package/src/global.d.ts +10 -2
- package/src/index.tsx +42 -13
- package/src/loadVirtualModule.ts +2 -0
- package/src/request-response.ts +335 -0
- package/src/router-manifest.ts +17 -38
- package/src/server-functions-handler.ts +6 -5
- package/src/serverRoute.ts +22 -3
- package/src/session.ts +75 -0
- package/src/tanstack-start.d.ts +18 -5
- package/src/virtual-modules.ts +2 -0
- package/dist/cjs/createRequestHandler.cjs +0 -50
- package/dist/cjs/createRequestHandler.cjs.map +0 -1
- package/dist/cjs/createRequestHandler.d.cts +0 -8
- package/dist/cjs/createStartHandler.cjs +0 -274
- package/dist/cjs/createStartHandler.cjs.map +0 -1
- package/dist/cjs/createStartHandler.d.cts +0 -10
- package/dist/cjs/h3.cjs +0 -355
- package/dist/cjs/h3.cjs.map +0 -1
- package/dist/cjs/h3.d.cts +0 -109
- package/dist/cjs/handlerCallback.cjs +0 -7
- package/dist/cjs/handlerCallback.cjs.map +0 -1
- package/dist/cjs/handlerCallback.d.cts +0 -9
- package/dist/cjs/index.cjs +0 -245
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/index.d.cts +0 -12
- package/dist/cjs/loadVirtualModule.cjs +0 -39
- package/dist/cjs/loadVirtualModule.cjs.map +0 -1
- package/dist/cjs/loadVirtualModule.d.cts +0 -6
- package/dist/cjs/router-manifest.cjs +0 -49
- package/dist/cjs/router-manifest.cjs.map +0 -1
- package/dist/cjs/router-manifest.d.cts +0 -16
- package/dist/cjs/server-functions-handler.cjs +0 -148
- package/dist/cjs/server-functions-handler.cjs.map +0 -1
- package/dist/cjs/server-functions-handler.d.cts +0 -3
- package/dist/cjs/serverRoute.cjs +0 -102
- package/dist/cjs/serverRoute.cjs.map +0 -1
- package/dist/cjs/serverRoute.d.cts +0 -120
- package/dist/cjs/ssr-server.cjs +0 -247
- package/dist/cjs/ssr-server.cjs.map +0 -1
- package/dist/cjs/ssr-server.d.cts +0 -29
- package/dist/cjs/transformStreamWithRouter.cjs +0 -183
- package/dist/cjs/transformStreamWithRouter.cjs.map +0 -1
- package/dist/cjs/transformStreamWithRouter.d.cts +0 -6
- package/dist/cjs/tsrScript.cjs +0 -4
- package/dist/cjs/tsrScript.cjs.map +0 -1
- package/dist/cjs/tsrScript.d.cts +0 -1
- package/dist/cjs/virtual-modules.cjs +0 -9
- package/dist/cjs/virtual-modules.cjs.map +0 -1
- package/dist/cjs/virtual-modules.d.cts +0 -10
- package/dist/esm/createRequestHandler.d.ts +0 -8
- package/dist/esm/createRequestHandler.js +0 -50
- package/dist/esm/createRequestHandler.js.map +0 -1
- package/dist/esm/h3.d.ts +0 -109
- package/dist/esm/h3.js +0 -248
- package/dist/esm/h3.js.map +0 -1
- package/dist/esm/handlerCallback.d.ts +0 -9
- package/dist/esm/handlerCallback.js +0 -7
- package/dist/esm/handlerCallback.js.map +0 -1
- package/dist/esm/ssr-server.d.ts +0 -29
- package/dist/esm/ssr-server.js +0 -247
- package/dist/esm/ssr-server.js.map +0 -1
- package/dist/esm/transformStreamWithRouter.d.ts +0 -6
- package/dist/esm/transformStreamWithRouter.js +0 -183
- package/dist/esm/transformStreamWithRouter.js.map +0 -1
- package/dist/esm/tsrScript.d.ts +0 -1
- package/dist/esm/tsrScript.js +0 -5
- package/dist/esm/tsrScript.js.map +0 -1
- package/src/createRequestHandler.ts +0 -73
- package/src/h3.ts +0 -492
- package/src/handlerCallback.ts +0 -15
- package/src/ssr-server.ts +0 -352
- package/src/transformStreamWithRouter.ts +0 -258
- package/src/tsrScript.ts +0 -91
- package/src/vite-env.d.ts +0 -4
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const web = require("node:stream/web");
|
|
4
|
-
const node_stream = require("node:stream");
|
|
5
|
-
const routerCore = require("@tanstack/router-core");
|
|
6
|
-
function transformReadableStreamWithRouter(router, routerStream) {
|
|
7
|
-
return transformStreamWithRouter(router, routerStream);
|
|
8
|
-
}
|
|
9
|
-
function transformPipeableStreamWithRouter(router, routerStream) {
|
|
10
|
-
return node_stream.Readable.fromWeb(
|
|
11
|
-
transformStreamWithRouter(router, node_stream.Readable.toWeb(routerStream))
|
|
12
|
-
);
|
|
13
|
-
}
|
|
14
|
-
const patternBodyStart = /(<body)/;
|
|
15
|
-
const patternBodyEnd = /(<\/body>)/;
|
|
16
|
-
const patternHtmlEnd = /(<\/html>)/;
|
|
17
|
-
const patternHeadStart = /(<head.*?>)/;
|
|
18
|
-
const patternClosingTag = /(<\/[a-zA-Z][\w:.-]*?>)/g;
|
|
19
|
-
const textDecoder = new TextDecoder();
|
|
20
|
-
function createPassthrough() {
|
|
21
|
-
let controller;
|
|
22
|
-
const encoder = new TextEncoder();
|
|
23
|
-
const stream = new web.ReadableStream({
|
|
24
|
-
start(c) {
|
|
25
|
-
controller = c;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
const res = {
|
|
29
|
-
stream,
|
|
30
|
-
write: (chunk) => {
|
|
31
|
-
controller.enqueue(encoder.encode(chunk));
|
|
32
|
-
},
|
|
33
|
-
end: (chunk) => {
|
|
34
|
-
if (chunk) {
|
|
35
|
-
controller.enqueue(encoder.encode(chunk));
|
|
36
|
-
}
|
|
37
|
-
controller.close();
|
|
38
|
-
res.destroyed = true;
|
|
39
|
-
},
|
|
40
|
-
destroy: (error) => {
|
|
41
|
-
controller.error(error);
|
|
42
|
-
},
|
|
43
|
-
destroyed: false
|
|
44
|
-
};
|
|
45
|
-
return res;
|
|
46
|
-
}
|
|
47
|
-
async function readStream(stream, opts) {
|
|
48
|
-
var _a, _b, _c;
|
|
49
|
-
try {
|
|
50
|
-
const reader = stream.getReader();
|
|
51
|
-
let chunk;
|
|
52
|
-
while (!(chunk = await reader.read()).done) {
|
|
53
|
-
(_a = opts.onData) == null ? void 0 : _a.call(opts, chunk);
|
|
54
|
-
}
|
|
55
|
-
(_b = opts.onEnd) == null ? void 0 : _b.call(opts);
|
|
56
|
-
} catch (error) {
|
|
57
|
-
(_c = opts.onError) == null ? void 0 : _c.call(opts, error);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
function transformStreamWithRouter(router, appStream) {
|
|
61
|
-
const finalPassThrough = createPassthrough();
|
|
62
|
-
let isAppRendering = true;
|
|
63
|
-
let routerStreamBuffer = "";
|
|
64
|
-
let pendingClosingTags = "";
|
|
65
|
-
let bodyStarted = false;
|
|
66
|
-
let headStarted = false;
|
|
67
|
-
let leftover = "";
|
|
68
|
-
let leftoverHtml = "";
|
|
69
|
-
function getBufferedRouterStream() {
|
|
70
|
-
const html = routerStreamBuffer;
|
|
71
|
-
routerStreamBuffer = "";
|
|
72
|
-
return html;
|
|
73
|
-
}
|
|
74
|
-
function decodeChunk(chunk) {
|
|
75
|
-
if (chunk instanceof Uint8Array) {
|
|
76
|
-
return textDecoder.decode(chunk);
|
|
77
|
-
}
|
|
78
|
-
return String(chunk);
|
|
79
|
-
}
|
|
80
|
-
const injectedHtmlDonePromise = routerCore.createControlledPromise();
|
|
81
|
-
let processingCount = 0;
|
|
82
|
-
router.serverSsr.injectedHtml.forEach((promise) => {
|
|
83
|
-
handleInjectedHtml(promise);
|
|
84
|
-
});
|
|
85
|
-
const stopListeningToInjectedHtml = router.subscribe(
|
|
86
|
-
"onInjectedHtml",
|
|
87
|
-
(e) => {
|
|
88
|
-
handleInjectedHtml(e.promise);
|
|
89
|
-
}
|
|
90
|
-
);
|
|
91
|
-
function handleInjectedHtml(promise) {
|
|
92
|
-
processingCount++;
|
|
93
|
-
promise.then((html) => {
|
|
94
|
-
if (!bodyStarted) {
|
|
95
|
-
routerStreamBuffer += html;
|
|
96
|
-
} else {
|
|
97
|
-
finalPassThrough.write(html);
|
|
98
|
-
}
|
|
99
|
-
}).catch(injectedHtmlDonePromise.reject).finally(() => {
|
|
100
|
-
processingCount--;
|
|
101
|
-
if (!isAppRendering && processingCount === 0) {
|
|
102
|
-
stopListeningToInjectedHtml();
|
|
103
|
-
injectedHtmlDonePromise.resolve();
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
injectedHtmlDonePromise.then(() => {
|
|
108
|
-
const finalHtml = leftoverHtml + getBufferedRouterStream() + pendingClosingTags;
|
|
109
|
-
finalPassThrough.end(finalHtml);
|
|
110
|
-
}).catch((err) => {
|
|
111
|
-
console.error("Error reading routerStream:", err);
|
|
112
|
-
finalPassThrough.destroy(err);
|
|
113
|
-
});
|
|
114
|
-
readStream(appStream, {
|
|
115
|
-
onData: (chunk) => {
|
|
116
|
-
const text = decodeChunk(chunk.value);
|
|
117
|
-
let chunkString = leftover + text;
|
|
118
|
-
const bodyEndMatch = chunkString.match(patternBodyEnd);
|
|
119
|
-
const htmlEndMatch = chunkString.match(patternHtmlEnd);
|
|
120
|
-
if (!bodyStarted) {
|
|
121
|
-
const bodyStartMatch = chunkString.match(patternBodyStart);
|
|
122
|
-
if (bodyStartMatch) {
|
|
123
|
-
bodyStarted = true;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (!headStarted) {
|
|
127
|
-
const headStartMatch = chunkString.match(patternHeadStart);
|
|
128
|
-
if (headStartMatch) {
|
|
129
|
-
headStarted = true;
|
|
130
|
-
const index = headStartMatch.index;
|
|
131
|
-
const headTag = headStartMatch[0];
|
|
132
|
-
const remaining = chunkString.slice(index + headTag.length);
|
|
133
|
-
finalPassThrough.write(
|
|
134
|
-
chunkString.slice(0, index) + headTag + getBufferedRouterStream()
|
|
135
|
-
);
|
|
136
|
-
chunkString = remaining;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (!bodyStarted) {
|
|
140
|
-
finalPassThrough.write(chunkString);
|
|
141
|
-
leftover = "";
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if (bodyEndMatch && htmlEndMatch && bodyEndMatch.index < htmlEndMatch.index) {
|
|
145
|
-
const bodyEndIndex = bodyEndMatch.index;
|
|
146
|
-
pendingClosingTags = chunkString.slice(bodyEndIndex);
|
|
147
|
-
finalPassThrough.write(
|
|
148
|
-
chunkString.slice(0, bodyEndIndex) + getBufferedRouterStream()
|
|
149
|
-
);
|
|
150
|
-
leftover = "";
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
let result;
|
|
154
|
-
let lastIndex = 0;
|
|
155
|
-
while ((result = patternClosingTag.exec(chunkString)) !== null) {
|
|
156
|
-
lastIndex = result.index + result[0].length;
|
|
157
|
-
}
|
|
158
|
-
if (lastIndex > 0) {
|
|
159
|
-
const processed = chunkString.slice(0, lastIndex) + getBufferedRouterStream() + leftoverHtml;
|
|
160
|
-
finalPassThrough.write(processed);
|
|
161
|
-
leftover = chunkString.slice(lastIndex);
|
|
162
|
-
} else {
|
|
163
|
-
leftover = chunkString;
|
|
164
|
-
leftoverHtml += getBufferedRouterStream();
|
|
165
|
-
}
|
|
166
|
-
},
|
|
167
|
-
onEnd: () => {
|
|
168
|
-
isAppRendering = false;
|
|
169
|
-
if (processingCount === 0) {
|
|
170
|
-
injectedHtmlDonePromise.resolve();
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
onError: (error) => {
|
|
174
|
-
console.error("Error reading appStream:", error);
|
|
175
|
-
finalPassThrough.destroy(error);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
return finalPassThrough.stream;
|
|
179
|
-
}
|
|
180
|
-
exports.transformPipeableStreamWithRouter = transformPipeableStreamWithRouter;
|
|
181
|
-
exports.transformReadableStreamWithRouter = transformReadableStreamWithRouter;
|
|
182
|
-
exports.transformStreamWithRouter = transformStreamWithRouter;
|
|
183
|
-
//# sourceMappingURL=transformStreamWithRouter.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformStreamWithRouter.cjs","sources":["../../src/transformStreamWithRouter.ts"],"sourcesContent":["import { ReadableStream } from 'node:stream/web'\nimport { Readable } from 'node:stream'\nimport { createControlledPromise } from '@tanstack/router-core'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nexport function transformReadableStreamWithRouter(\n router: AnyRouter,\n routerStream: ReadableStream,\n) {\n return transformStreamWithRouter(router, routerStream)\n}\n\nexport function transformPipeableStreamWithRouter(\n router: AnyRouter,\n routerStream: Readable,\n) {\n return Readable.fromWeb(\n transformStreamWithRouter(router, Readable.toWeb(routerStream)),\n )\n}\n\n// regex pattern for matching closing body and html tags\nconst patternBodyStart = /(<body)/\nconst patternBodyEnd = /(<\\/body>)/\nconst patternHtmlEnd = /(<\\/html>)/\nconst patternHeadStart = /(<head.*?>)/\n// regex pattern for matching closing tags\nconst patternClosingTag = /(<\\/[a-zA-Z][\\w:.-]*?>)/g\n\nconst textDecoder = new TextDecoder()\n\ntype ReadablePassthrough = {\n stream: ReadableStream\n write: (chunk: string) => void\n end: (chunk?: string) => void\n destroy: (error: unknown) => void\n destroyed: boolean\n}\n\nfunction createPassthrough() {\n let controller: ReadableStreamDefaultController<any>\n const encoder = new TextEncoder()\n const stream = new ReadableStream({\n start(c) {\n controller = c\n },\n })\n\n const res: ReadablePassthrough = {\n stream,\n write: (chunk) => {\n controller.enqueue(encoder.encode(chunk))\n },\n end: (chunk) => {\n if (chunk) {\n controller.enqueue(encoder.encode(chunk))\n }\n controller.close()\n res.destroyed = true\n },\n destroy: (error) => {\n controller.error(error)\n },\n destroyed: false,\n }\n\n return res\n}\n\nasync function readStream(\n stream: ReadableStream,\n opts: {\n onData?: (chunk: ReadableStreamReadValueResult<any>) => void\n onEnd?: () => void\n onError?: (error: unknown) => void\n },\n) {\n try {\n const reader = stream.getReader()\n let chunk\n while (!(chunk = await reader.read()).done) {\n opts.onData?.(chunk)\n }\n opts.onEnd?.()\n } catch (error) {\n opts.onError?.(error)\n }\n}\n\nexport function transformStreamWithRouter(\n router: AnyRouter,\n appStream: ReadableStream,\n) {\n const finalPassThrough = createPassthrough()\n\n let isAppRendering = true as boolean\n let routerStreamBuffer = ''\n let pendingClosingTags = ''\n let bodyStarted = false as boolean\n let headStarted = false as boolean\n let leftover = ''\n let leftoverHtml = ''\n\n function getBufferedRouterStream() {\n const html = routerStreamBuffer\n routerStreamBuffer = ''\n return html\n }\n\n function decodeChunk(chunk: unknown): string {\n if (chunk instanceof Uint8Array) {\n return textDecoder.decode(chunk)\n }\n return String(chunk)\n }\n\n const injectedHtmlDonePromise = createControlledPromise<void>()\n\n let processingCount = 0\n\n // Process any already-injected HTML\n router.serverSsr!.injectedHtml.forEach((promise) => {\n handleInjectedHtml(promise)\n })\n\n // Listen for any new injected HTML\n const stopListeningToInjectedHtml = router.subscribe(\n 'onInjectedHtml',\n (e) => {\n handleInjectedHtml(e.promise)\n },\n )\n\n function handleInjectedHtml(promise: Promise<string>) {\n processingCount++\n\n promise\n .then((html) => {\n if (!bodyStarted) {\n routerStreamBuffer += html\n } else {\n finalPassThrough.write(html)\n }\n })\n .catch(injectedHtmlDonePromise.reject)\n .finally(() => {\n processingCount--\n\n if (!isAppRendering && processingCount === 0) {\n stopListeningToInjectedHtml()\n injectedHtmlDonePromise.resolve()\n }\n })\n }\n\n injectedHtmlDonePromise\n .then(() => {\n const finalHtml =\n leftoverHtml + getBufferedRouterStream() + pendingClosingTags\n\n finalPassThrough.end(finalHtml)\n })\n .catch((err) => {\n console.error('Error reading routerStream:', err)\n finalPassThrough.destroy(err)\n })\n\n // Transform the appStream\n readStream(appStream, {\n onData: (chunk) => {\n const text = decodeChunk(chunk.value)\n\n let chunkString = leftover + text\n const bodyEndMatch = chunkString.match(patternBodyEnd)\n const htmlEndMatch = chunkString.match(patternHtmlEnd)\n\n if (!bodyStarted) {\n const bodyStartMatch = chunkString.match(patternBodyStart)\n if (bodyStartMatch) {\n bodyStarted = true\n }\n }\n\n if (!headStarted) {\n const headStartMatch = chunkString.match(patternHeadStart)\n if (headStartMatch) {\n headStarted = true\n const index = headStartMatch.index!\n const headTag = headStartMatch[0]\n const remaining = chunkString.slice(index + headTag.length)\n finalPassThrough.write(\n chunkString.slice(0, index) + headTag + getBufferedRouterStream(),\n )\n // make sure to only write `remaining` until the next closing tag\n chunkString = remaining\n }\n }\n\n if (!bodyStarted) {\n finalPassThrough.write(chunkString)\n leftover = ''\n return\n }\n\n // If either the body end or html end is in the chunk,\n // We need to get all of our data in asap\n if (\n bodyEndMatch &&\n htmlEndMatch &&\n bodyEndMatch.index! < htmlEndMatch.index!\n ) {\n const bodyEndIndex = bodyEndMatch.index!\n pendingClosingTags = chunkString.slice(bodyEndIndex)\n\n finalPassThrough.write(\n chunkString.slice(0, bodyEndIndex) + getBufferedRouterStream(),\n )\n\n leftover = ''\n return\n }\n\n let result: RegExpExecArray | null\n let lastIndex = 0\n while ((result = patternClosingTag.exec(chunkString)) !== null) {\n lastIndex = result.index + result[0].length\n }\n\n if (lastIndex > 0) {\n const processed =\n chunkString.slice(0, lastIndex) +\n getBufferedRouterStream() +\n leftoverHtml\n\n finalPassThrough.write(processed)\n leftover = chunkString.slice(lastIndex)\n } else {\n leftover = chunkString\n leftoverHtml += getBufferedRouterStream()\n }\n },\n onEnd: () => {\n // Mark the app as done rendering\n isAppRendering = false\n\n // If there are no pending promises, resolve the injectedHtmlDonePromise\n if (processingCount === 0) {\n injectedHtmlDonePromise.resolve()\n }\n },\n onError: (error) => {\n console.error('Error reading appStream:', error)\n finalPassThrough.destroy(error)\n },\n })\n\n return finalPassThrough.stream\n}\n"],"names":["Readable","ReadableStream","createControlledPromise"],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ReadableStream } from 'node:stream/web';
|
|
2
|
-
import { Readable } from 'node:stream';
|
|
3
|
-
import { AnyRouter } from '@tanstack/router-core';
|
|
4
|
-
export declare function transformReadableStreamWithRouter(router: AnyRouter, routerStream: ReadableStream): ReadableStream<any>;
|
|
5
|
-
export declare function transformPipeableStreamWithRouter(router: AnyRouter, routerStream: Readable): Readable;
|
|
6
|
-
export declare function transformStreamWithRouter(router: AnyRouter, appStream: ReadableStream): ReadableStream<any>;
|
package/dist/cjs/tsrScript.cjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const minifiedTsrBootStrapScript = 'const __TSR_SSR__={matches:[],streamedValues:{},initMatch:o=>(__TSR_SSR__.matches.push(o),o.extracted?.forEach(l=>{if(l.type==="stream"){let r;l.value=new ReadableStream({start(e){r={enqueue:t=>{try{e.enqueue(t)}catch{}},close:()=>{try{e.close()}catch{}}}}}),l.value.controller=r}else{let r,e;l.value=new Promise((t,a)=>{e=a,r=t}),l.value.reject=e,l.value.resolve=r}}),!0),resolvePromise:({matchId:o,id:l,promiseState:r})=>{const e=__TSR_SSR__.matches.find(t=>t.id===o);if(e){const t=e.extracted?.[l];if(t&&t.type==="promise"&&t.value&&r.status==="success")return t.value.resolve(r.data),!0}return!1},injectChunk:({matchId:o,id:l,chunk:r})=>{const e=__TSR_SSR__.matches.find(t=>t.id===o);if(e){const t=e.extracted?.[l];if(t&&t.type==="stream"&&t.value?.controller)return t.value.controller.enqueue(new TextEncoder().encode(r.toString())),!0}return!1},closeStream:({matchId:o,id:l})=>{const r=__TSR_SSR__.matches.find(e=>e.id===o);if(r){const e=r.extracted?.[l];if(e&&e.type==="stream"&&e.value?.controller)return e.value.controller.close(),!0}return!1},cleanScripts:()=>{document.querySelectorAll(".tsr-once").forEach(o=>{o.remove()})}};window.__TSR_SSR__=__TSR_SSR__;\n';
|
|
3
|
-
module.exports = minifiedTsrBootStrapScript;
|
|
4
|
-
//# sourceMappingURL=tsrScript.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tsrScript.cjs","sources":["../../src/tsrScript.ts?script-string"],"sourcesContent":["import type { ControllablePromise } from '@tanstack/router-core'\nimport type { StartSsrGlobal } from '@tanstack/start-client-core'\n\nconst __TSR_SSR__: StartSsrGlobal = {\n matches: [],\n streamedValues: {},\n initMatch: (match) => {\n __TSR_SSR__.matches.push(match)\n\n match.extracted?.forEach((ex) => {\n if (ex.type === 'stream') {\n let controller\n ex.value = new ReadableStream({\n start(c) {\n controller = {\n enqueue: (chunk: unknown) => {\n try {\n c.enqueue(chunk)\n } catch {}\n },\n close: () => {\n try {\n c.close()\n } catch {}\n },\n }\n },\n })\n ex.value.controller = controller\n } else {\n let resolve: ControllablePromise['reject'] | undefined\n let reject: ControllablePromise['reject'] | undefined\n\n ex.value = new Promise((_resolve, _reject) => {\n reject = _reject\n resolve = _resolve\n }) as ControllablePromise\n ex.value.reject = reject!\n ex.value.resolve = resolve!\n }\n })\n\n return true\n },\n resolvePromise: ({ matchId, id, promiseState }) => {\n const match = __TSR_SSR__.matches.find((m) => m.id === matchId)\n if (match) {\n const ex = match.extracted?.[id]\n if (\n ex &&\n ex.type === 'promise' &&\n ex.value &&\n promiseState.status === 'success'\n ) {\n ex.value.resolve(promiseState.data)\n return true\n }\n }\n return false\n },\n injectChunk: ({ matchId, id, chunk }) => {\n const match = __TSR_SSR__.matches.find((m) => m.id === matchId)\n\n if (match) {\n const ex = match.extracted?.[id]\n if (ex && ex.type === 'stream' && ex.value?.controller) {\n ex.value.controller.enqueue(new TextEncoder().encode(chunk.toString()))\n return true\n }\n }\n return false\n },\n closeStream: ({ matchId, id }) => {\n const match = __TSR_SSR__.matches.find((m) => m.id === matchId)\n if (match) {\n const ex = match.extracted?.[id]\n if (ex && ex.type === 'stream' && ex.value?.controller) {\n ex.value.controller.close()\n return true\n }\n }\n return false\n },\n cleanScripts: () => {\n document.querySelectorAll('.tsr-once').forEach((el) => {\n el.remove()\n })\n },\n}\n\nwindow.__TSR_SSR__ = __TSR_SSR__\n"],"names":[],"mappings":";AAAA,MAAA,6BAAe;;"}
|
package/dist/cjs/tsrScript.d.cts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const VIRTUAL_MODULES = {
|
|
4
|
-
routeTree: "tanstack-start-route-tree:v",
|
|
5
|
-
startManifest: "tanstack-start-manifest:v",
|
|
6
|
-
serverFnManifest: "tanstack-start-server-fn-manifest:v"
|
|
7
|
-
};
|
|
8
|
-
exports.VIRTUAL_MODULES = VIRTUAL_MODULES;
|
|
9
|
-
//# sourceMappingURL=virtual-modules.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-modules.cjs","sources":["../../src/virtual-modules.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/consistent-type-imports */\n\nexport const VIRTUAL_MODULES = {\n routeTree: 'tanstack-start-route-tree:v',\n startManifest: 'tanstack-start-manifest:v',\n serverFnManifest: 'tanstack-start-server-fn-manifest:v',\n} as const\n\nexport type VirtualModules = {\n [VIRTUAL_MODULES.routeTree]: typeof import('tanstack-start-route-tree:v')\n [VIRTUAL_MODULES.startManifest]: typeof import('tanstack-start-manifest:v')\n [VIRTUAL_MODULES.serverFnManifest]: typeof import('tanstack-start-server-fn-manifest:v')\n}\n"],"names":[],"mappings":";;AAEO,MAAM,kBAAkB;AAAA,EAC7B,WAAW;AAAA,EACX,eAAe;AAAA,EACf,kBAAkB;AACpB;;"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const VIRTUAL_MODULES: {
|
|
2
|
-
readonly routeTree: "tanstack-start-route-tree:v";
|
|
3
|
-
readonly startManifest: "tanstack-start-manifest:v";
|
|
4
|
-
readonly serverFnManifest: "tanstack-start-server-fn-manifest:v";
|
|
5
|
-
};
|
|
6
|
-
export type VirtualModules = {
|
|
7
|
-
[VIRTUAL_MODULES.routeTree]: typeof import('tanstack-start-route-tree:v');
|
|
8
|
-
[VIRTUAL_MODULES.startManifest]: typeof import('tanstack-start-manifest:v');
|
|
9
|
-
[VIRTUAL_MODULES.serverFnManifest]: typeof import('tanstack-start-server-fn-manifest:v');
|
|
10
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { HandlerCallback } from './handlerCallback.js';
|
|
2
|
-
import { AnyRouter, Manifest } from '@tanstack/router-core';
|
|
3
|
-
export type RequestHandler<TRouter extends AnyRouter> = (cb: HandlerCallback<TRouter>) => Promise<Response>;
|
|
4
|
-
export declare function createRequestHandler<TRouter extends AnyRouter>({ createRouter, request, getRouterManifest, }: {
|
|
5
|
-
createRouter: () => TRouter;
|
|
6
|
-
request: Request;
|
|
7
|
-
getRouterManifest?: () => Manifest | Promise<Manifest>;
|
|
8
|
-
}): RequestHandler<TRouter>;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { createMemoryHistory } from "@tanstack/history";
|
|
2
|
-
import { mergeHeaders } from "@tanstack/start-client-core";
|
|
3
|
-
import { attachRouterServerSsrUtils, dehydrateRouter } from "./ssr-server.js";
|
|
4
|
-
function createRequestHandler({
|
|
5
|
-
createRouter,
|
|
6
|
-
request,
|
|
7
|
-
getRouterManifest
|
|
8
|
-
}) {
|
|
9
|
-
return async (cb) => {
|
|
10
|
-
const router = createRouter();
|
|
11
|
-
attachRouterServerSsrUtils(router, await (getRouterManifest == null ? void 0 : getRouterManifest()));
|
|
12
|
-
const url = new URL(request.url, "http://localhost");
|
|
13
|
-
const href = url.href.replace(url.origin, "");
|
|
14
|
-
const history = createMemoryHistory({
|
|
15
|
-
initialEntries: [href]
|
|
16
|
-
});
|
|
17
|
-
router.update({
|
|
18
|
-
history
|
|
19
|
-
});
|
|
20
|
-
await router.load();
|
|
21
|
-
dehydrateRouter(router);
|
|
22
|
-
const responseHeaders = getRequestHeaders({
|
|
23
|
-
router
|
|
24
|
-
});
|
|
25
|
-
return cb({
|
|
26
|
-
request,
|
|
27
|
-
router,
|
|
28
|
-
responseHeaders
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function getRequestHeaders(opts) {
|
|
33
|
-
let headers = mergeHeaders(
|
|
34
|
-
{
|
|
35
|
-
"Content-Type": "text/html; charset=UTF-8"
|
|
36
|
-
},
|
|
37
|
-
...opts.router.state.matches.map((match) => {
|
|
38
|
-
return match.headers;
|
|
39
|
-
})
|
|
40
|
-
);
|
|
41
|
-
const { redirect } = opts.router.state;
|
|
42
|
-
if (redirect) {
|
|
43
|
-
headers = mergeHeaders(headers, redirect.headers);
|
|
44
|
-
}
|
|
45
|
-
return headers;
|
|
46
|
-
}
|
|
47
|
-
export {
|
|
48
|
-
createRequestHandler
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=createRequestHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createRequestHandler.js","sources":["../../src/createRequestHandler.ts"],"sourcesContent":["import { createMemoryHistory } from '@tanstack/history'\nimport { mergeHeaders } from '@tanstack/start-client-core'\nimport { attachRouterServerSsrUtils, dehydrateRouter } from './ssr-server'\nimport type { HandlerCallback } from './handlerCallback'\nimport type { AnyRouter, Manifest } from '@tanstack/router-core'\n\nexport type RequestHandler<TRouter extends AnyRouter> = (\n cb: HandlerCallback<TRouter>,\n) => Promise<Response>\n\nexport function createRequestHandler<TRouter extends AnyRouter>({\n createRouter,\n request,\n getRouterManifest,\n}: {\n createRouter: () => TRouter\n request: Request\n getRouterManifest?: () => Manifest | Promise<Manifest>\n}): RequestHandler<TRouter> {\n return async (cb) => {\n const router = createRouter()\n\n attachRouterServerSsrUtils(router, await getRouterManifest?.())\n\n const url = new URL(request.url, 'http://localhost')\n\n const href = url.href.replace(url.origin, '')\n\n // Create a history for the router\n const history = createMemoryHistory({\n initialEntries: [href],\n })\n\n // Update the router with the history and context\n router.update({\n history,\n })\n\n await router.load()\n\n dehydrateRouter(router)\n\n const responseHeaders = getRequestHeaders({\n router,\n })\n\n return cb({\n request,\n router,\n responseHeaders,\n } as any)\n }\n}\n\nfunction getRequestHeaders(opts: { router: AnyRouter }): Headers {\n let headers = mergeHeaders(\n {\n 'Content-Type': 'text/html; charset=UTF-8',\n },\n ...opts.router.state.matches.map((match) => {\n return match.headers\n }),\n )\n\n // Handle Redirects\n const { redirect } = opts.router.state\n\n if (redirect) {\n headers = mergeHeaders(headers, redirect.headers)\n }\n\n return headers\n}\n"],"names":[],"mappings":";;;AAUO,SAAS,qBAAgD;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AACF,GAI4B;AAC1B,SAAO,OAAO,OAAO;AACnB,UAAM,SAAS,aAAa;AAED,+BAAA,QAAQ,OAAM,yDAAqB;AAE9D,UAAM,MAAM,IAAI,IAAI,QAAQ,KAAK,kBAAkB;AAEnD,UAAM,OAAO,IAAI,KAAK,QAAQ,IAAI,QAAQ,EAAE;AAG5C,UAAM,UAAU,oBAAoB;AAAA,MAClC,gBAAgB,CAAC,IAAI;AAAA,IAAA,CACtB;AAGD,WAAO,OAAO;AAAA,MACZ;AAAA,IAAA,CACD;AAED,UAAM,OAAO,KAAK;AAElB,oBAAgB,MAAM;AAEtB,UAAM,kBAAkB,kBAAkB;AAAA,MACxC;AAAA,IAAA,CACD;AAED,WAAO,GAAG;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACM;AAAA,EACV;AACF;AAEA,SAAS,kBAAkB,MAAsC;AAC/D,MAAI,UAAU;AAAA,IACZ;AAAA,MACE,gBAAgB;AAAA,IAClB;AAAA,IACA,GAAG,KAAK,OAAO,MAAM,QAAQ,IAAI,CAAC,UAAU;AAC1C,aAAO,MAAM;AAAA,IACd,CAAA;AAAA,EACH;AAGA,QAAM,EAAE,SAAA,IAAa,KAAK,OAAO;AAEjC,MAAI,UAAU;AACF,cAAA,aAAa,SAAS,SAAS,OAAO;AAAA,EAAA;AAG3C,SAAA;AACT;"}
|
package/dist/esm/h3.d.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { H3Event, appendCorsHeaders as _appendCorsHeaders, appendCorsPreflightHeaders as _appendCorsPreflightHeaders, appendHeader as _appendHeader, appendResponseHeader as _appendResponseHeader, appendResponseHeaders as _appendResponseHeaders, assertMethod as _assertMethod, clearResponseHeaders as _clearResponseHeaders, clearSession as _clearSession, defaultContentType as _defaultContentType, deleteCookie as _deleteCookie, fetchWithEvent as _fetchWithEvent, getCookie as _getCookie, getProxyRequestHeaders as _getProxyRequestHeaders, getQuery as _getQuery, getRequestFingerprint as _getRequestFingerprint, getRequestHeader as _getRequestHeader, getRequestHeaders as _getRequestHeaders, getRequestHost as _getRequestHost, getRequestIP as _getRequestIP, getRequestProtocol as _getRequestProtocol, getRequestURL as _getRequestURL, getRequestWebStream as _getRequestWebStream, getResponseHeader as _getResponseHeader, getResponseHeaders as _getResponseHeaders, getResponseStatus as _getResponseStatus, getResponseStatusText as _getResponseStatusText, getRouterParam as _getRouterParam, getRouterParams as _getRouterParams, getSession as _getSession, getValidatedQuery as _getValidatedQuery, getValidatedRouterParams as _getValidatedRouterParams, handleCacheHeaders as _handleCacheHeaders, handleCors as _handleCors, isMethod as _isMethod, isPreflightRequest as _isPreflightRequest, parseCookies as _parseCookies, proxyRequest as _proxyRequest, readBody as _readBody, readFormData as _readFormData, readMultipartFormData as _readMultipartFormData, readRawBody as _readRawBody, readValidatedBody as _readValidatedBody, removeResponseHeader as _removeResponseHeader, sealSession as _sealSession, send as _send, sendError as _sendError, sendNoContent as _sendNoContent, sendProxy as _sendProxy, sendRedirect as _sendRedirect, sendStream as _sendStream, sendWebResponse as _sendWebResponse, setCookie as _setCookie, setHeader as _setHeader, setResponseHeader as _setResponseHeader, setResponseHeaders as _setResponseHeaders, setResponseStatus as _setResponseStatus, toWebRequest as _toWebRequest, unsealSession as _unsealSession, updateSession as _updateSession, useSession as _useSession, writeEarlyHints as _writeEarlyHints, Encoding, EventHandler, HTTPHeaderName, InferEventInput, _RequestMiddleware, _ResponseMiddleware } from 'h3';
|
|
2
|
-
declare function _setContext(event: H3Event, key: string, value: any): void;
|
|
3
|
-
declare function _getContext(event: H3Event, key: string): any;
|
|
4
|
-
export declare function defineMiddleware(options: {
|
|
5
|
-
onRequest?: _RequestMiddleware | Array<_RequestMiddleware>;
|
|
6
|
-
onBeforeResponse?: _ResponseMiddleware | Array<_ResponseMiddleware>;
|
|
7
|
-
}): {
|
|
8
|
-
onRequest?: _RequestMiddleware | Array<_RequestMiddleware>;
|
|
9
|
-
onBeforeResponse?: _ResponseMiddleware | Array<_ResponseMiddleware>;
|
|
10
|
-
};
|
|
11
|
-
export { H3Error, H3Event, MIMES, callNodeListener, createApp, createAppEventHandler, createEvent, createRouter, defineLazyEventHandler, defineNodeListener, defineNodeMiddleware, defineRequestMiddleware, defineResponseMiddleware, dynamicEventHandler, defineWebSocket, splitCookiesString, fromNodeMiddleware, fromPlainHandler, fromWebHandler, isError, isEventHandler, isWebResponse, lazyEventHandler, promisifyNodeListener, serveStatic, toEventHandler, toNodeListener, toPlainHandler, toWebHandler, toWebRequest, isCorsOriginAllowed, isStream, createError, sanitizeStatusCode, sanitizeStatusMessage, useBase, type AddRouteShortcuts, type App, type AppOptions, type AppUse, type CacheConditions, type CreateRouterOptions, type Duplex, type DynamicEventHandler, type Encoding, type EventHandler, type EventHandlerObject, type EventHandlerRequest, type EventHandlerResponse, type H3CorsOptions, type H3EventContext, type HTTPHeaderName, type HTTPMethod, type InferEventInput, type InputLayer, type InputStack, type Layer, type LazyEventHandler, type Matcher, type MultiPartData, type NodeEventContext, type NodeListener, type NodeMiddleware, type NodePromisifiedHandler, type PlainHandler, type PlainRequest, type PlainResponse, type ProxyOptions, type RequestFingerprintOptions, type RequestHeaders, type RouteNode, type Router, type RouterMethod, type RouterUse, type ServeStaticOptions, type Session, type SessionConfig, type SessionData, type Stack, type StaticAssetMeta, type ValidateFunction, type ValidateResult, type WebEventContext, type WebHandler, type _RequestMiddleware, type _ResponseMiddleware, } from 'h3';
|
|
12
|
-
export declare function defineEventHandler(handler: EventHandler): EventHandler<import('h3').EventHandlerRequest, Promise<any>>;
|
|
13
|
-
export declare function eventHandler(handler: EventHandler): EventHandler<import('h3').EventHandlerRequest, Promise<any>>;
|
|
14
|
-
export declare function runWithEvent<T>(event: H3Event, fn: () => T | Promise<T>): Promise<T>;
|
|
15
|
-
export declare function getEvent(): H3Event<import('h3').EventHandlerRequest>;
|
|
16
|
-
export declare const HTTPEventSymbol: unique symbol;
|
|
17
|
-
export declare function isEvent(obj: any): obj is H3Event | {
|
|
18
|
-
[HTTPEventSymbol]: H3Event;
|
|
19
|
-
};
|
|
20
|
-
type Tail<T> = T extends [any, ...infer U] ? U : never;
|
|
21
|
-
type PrependOverload<TOriginal extends (...args: Array<any>) => any, TOverload extends (...args: Array<any>) => any> = TOverload & TOriginal;
|
|
22
|
-
type WrapFunction<TFn extends (...args: Array<any>) => any> = PrependOverload<TFn, (...args: Parameters<TFn> extends [H3Event, ...infer TArgs] ? TArgs : Parameters<TFn>) => ReturnType<TFn>>;
|
|
23
|
-
type WrappedReadRawBody = <TEncoding extends Encoding = 'utf8'>(...args: Tail<Parameters<typeof _readRawBody<TEncoding>>>) => ReturnType<typeof _readRawBody<TEncoding>>;
|
|
24
|
-
export declare const readRawBody: PrependOverload<typeof _readRawBody, WrappedReadRawBody>;
|
|
25
|
-
type WrappedReadBody = <T, TEventInput = InferEventInput<'body', H3Event, T>>(...args: Tail<Parameters<typeof _readBody<T, H3Event, TEventInput>>>) => ReturnType<typeof _readBody<T, H3Event, TEventInput>>;
|
|
26
|
-
export declare const readBody: PrependOverload<typeof _readBody, WrappedReadBody>;
|
|
27
|
-
type WrappedGetQuery = <T, TEventInput = Exclude<InferEventInput<'query', H3Event, T>, undefined>>(...args: Tail<Parameters<typeof _getQuery<T, H3Event, TEventInput>>>) => ReturnType<typeof _getQuery<T, H3Event, TEventInput>>;
|
|
28
|
-
export declare const getQuery: PrependOverload<typeof _getQuery, WrappedGetQuery>;
|
|
29
|
-
export declare const isMethod: WrapFunction<typeof _isMethod>;
|
|
30
|
-
export declare const isPreflightRequest: WrapFunction<typeof _isPreflightRequest>;
|
|
31
|
-
type WrappedGetValidatedQuery = <T, TEventInput = InferEventInput<'query', H3Event, T>>(...args: Tail<Parameters<typeof _getValidatedQuery<T, H3Event, TEventInput>>>) => ReturnType<typeof _getValidatedQuery<T, H3Event, TEventInput>>;
|
|
32
|
-
export declare const getValidatedQuery: PrependOverload<typeof _getValidatedQuery, WrappedGetValidatedQuery>;
|
|
33
|
-
export declare const getRouterParams: WrapFunction<typeof _getRouterParams>;
|
|
34
|
-
export declare const getRouterParam: WrapFunction<typeof _getRouterParam>;
|
|
35
|
-
type WrappedGetValidatedRouterParams = <T, TEventInput = InferEventInput<'routerParams', H3Event, T>>(...args: Tail<Parameters<typeof _getValidatedRouterParams<T, H3Event, TEventInput>>>) => ReturnType<typeof _getValidatedRouterParams<T, H3Event, TEventInput>>;
|
|
36
|
-
export declare const getValidatedRouterParams: PrependOverload<typeof _getValidatedRouterParams, WrappedGetValidatedRouterParams>;
|
|
37
|
-
export declare const assertMethod: WrapFunction<typeof _assertMethod>;
|
|
38
|
-
export declare const getRequestHeaders: WrapFunction<typeof _getRequestHeaders>;
|
|
39
|
-
export declare const getRequestHeader: WrapFunction<typeof _getRequestHeader>;
|
|
40
|
-
export declare const getRequestURL: WrapFunction<typeof _getRequestURL>;
|
|
41
|
-
export declare const getRequestHost: WrapFunction<typeof _getRequestHost>;
|
|
42
|
-
export declare const getRequestProtocol: WrapFunction<typeof _getRequestProtocol>;
|
|
43
|
-
export declare const getRequestIP: WrapFunction<typeof _getRequestIP>;
|
|
44
|
-
export declare const send: WrapFunction<typeof _send>;
|
|
45
|
-
export declare const sendNoContent: WrapFunction<typeof _sendNoContent>;
|
|
46
|
-
export declare const setResponseStatus: WrapFunction<typeof _setResponseStatus>;
|
|
47
|
-
export declare const getResponseStatus: WrapFunction<typeof _getResponseStatus>;
|
|
48
|
-
export declare const getResponseStatusText: WrapFunction<typeof _getResponseStatusText>;
|
|
49
|
-
export declare const getResponseHeaders: WrapFunction<typeof _getResponseHeaders>;
|
|
50
|
-
export declare const getResponseHeader: WrapFunction<typeof _getResponseHeader>;
|
|
51
|
-
export declare const setResponseHeaders: WrapFunction<typeof _setResponseHeaders>;
|
|
52
|
-
type WrappedSetResponseHeader = <T extends HTTPHeaderName>(...args: Tail<Parameters<typeof _setResponseHeader<T>>>) => ReturnType<typeof _setResponseHeader<T>>;
|
|
53
|
-
export declare const setResponseHeader: PrependOverload<typeof _setResponseHeader, WrappedSetResponseHeader>;
|
|
54
|
-
export declare const appendResponseHeaders: WrapFunction<typeof _appendResponseHeaders>;
|
|
55
|
-
type WrappedAppendResponseHeader = <T extends HTTPHeaderName>(...args: Tail<Parameters<typeof _appendResponseHeader<T>>>) => ReturnType<typeof _appendResponseHeader<T>>;
|
|
56
|
-
export declare const appendResponseHeader: PrependOverload<typeof _appendResponseHeader, WrappedAppendResponseHeader>;
|
|
57
|
-
export declare const defaultContentType: WrapFunction<typeof _defaultContentType>;
|
|
58
|
-
export declare const sendRedirect: WrapFunction<typeof _sendRedirect>;
|
|
59
|
-
export declare const sendStream: WrapFunction<typeof _sendStream>;
|
|
60
|
-
export declare const writeEarlyHints: WrapFunction<typeof _writeEarlyHints>;
|
|
61
|
-
export declare const sendError: WrapFunction<typeof _sendError>;
|
|
62
|
-
export declare const sendProxy: WrapFunction<typeof _sendProxy>;
|
|
63
|
-
export declare const proxyRequest: WrapFunction<typeof _proxyRequest>;
|
|
64
|
-
type WrappedFetchWithEvent = <T = unknown, TResponse = any, TFetch extends (req: RequestInfo | URL, opts?: any) => any = typeof fetch>(...args: Tail<Parameters<typeof _fetchWithEvent<T, TResponse, TFetch>>>) => ReturnType<typeof _fetchWithEvent<T, TResponse, TFetch>>;
|
|
65
|
-
export declare const fetchWithEvent: PrependOverload<typeof _fetchWithEvent, WrappedFetchWithEvent>;
|
|
66
|
-
export declare const getProxyRequestHeaders: WrapFunction<typeof _getProxyRequestHeaders>;
|
|
67
|
-
export declare const parseCookies: WrapFunction<typeof _parseCookies>;
|
|
68
|
-
export declare const getCookie: WrapFunction<typeof _getCookie>;
|
|
69
|
-
export declare const setCookie: WrapFunction<typeof _setCookie>;
|
|
70
|
-
export declare const deleteCookie: WrapFunction<typeof _deleteCookie>;
|
|
71
|
-
type SessionDataT = Record<string, any>;
|
|
72
|
-
type WrappedUseSession = <T extends SessionDataT>(...args: Tail<Parameters<typeof _useSession<T>>>) => ReturnType<typeof _useSession<T>>;
|
|
73
|
-
export declare const useSession: PrependOverload<typeof _useSession, WrappedUseSession>;
|
|
74
|
-
type WrappedGetSession = <T extends SessionDataT>(...args: Tail<Parameters<typeof _getSession<T>>>) => ReturnType<typeof _getSession<T>>;
|
|
75
|
-
export declare const getSession: PrependOverload<typeof _getSession, WrappedGetSession>;
|
|
76
|
-
type WrappedUpdateSession = <T extends SessionDataT>(...args: Tail<Parameters<typeof _updateSession<T>>>) => ReturnType<typeof _updateSession<T>>;
|
|
77
|
-
export declare const updateSession: PrependOverload<typeof _updateSession, WrappedUpdateSession>;
|
|
78
|
-
type WrappedSealSession = <T extends SessionDataT>(...args: Tail<Parameters<typeof _sealSession<T>>>) => ReturnType<typeof _sealSession<T>>;
|
|
79
|
-
export declare const sealSession: PrependOverload<typeof _sealSession, WrappedSealSession>;
|
|
80
|
-
export declare const unsealSession: WrapFunction<typeof _unsealSession>;
|
|
81
|
-
export declare const clearSession: WrapFunction<typeof _clearSession>;
|
|
82
|
-
export declare const handleCacheHeaders: WrapFunction<typeof _handleCacheHeaders>;
|
|
83
|
-
export declare const handleCors: WrapFunction<typeof _handleCors>;
|
|
84
|
-
export declare const appendCorsHeaders: WrapFunction<typeof _appendCorsHeaders>;
|
|
85
|
-
export declare const appendCorsPreflightHeaders: WrapFunction<typeof _appendCorsPreflightHeaders>;
|
|
86
|
-
export declare const sendWebResponse: WrapFunction<typeof _sendWebResponse>;
|
|
87
|
-
type WrappedAppendHeader = <T extends HTTPHeaderName>(...args: Tail<Parameters<typeof _appendHeader<T>>>) => ReturnType<typeof _appendHeader<T>>;
|
|
88
|
-
export declare const appendHeader: PrependOverload<typeof _appendHeader, WrappedAppendHeader>;
|
|
89
|
-
export declare const appendHeaders: WrapFunction<typeof _appendResponseHeaders>;
|
|
90
|
-
type WrappedSetHeader = <T extends HTTPHeaderName>(...args: Tail<Parameters<typeof _setHeader<T>>>) => ReturnType<typeof _setHeader<T>>;
|
|
91
|
-
export declare const setHeader: PrependOverload<typeof _setHeader, WrappedSetHeader>;
|
|
92
|
-
export declare const setHeaders: WrapFunction<typeof _setResponseHeaders>;
|
|
93
|
-
export declare const getHeader: WrapFunction<typeof _getRequestHeader>;
|
|
94
|
-
export declare const getHeaders: WrapFunction<typeof _getRequestHeaders>;
|
|
95
|
-
export declare const getRequestFingerprint: WrapFunction<typeof _getRequestFingerprint>;
|
|
96
|
-
export declare const getRequestWebStream: WrapFunction<typeof _getRequestWebStream>;
|
|
97
|
-
export declare const readFormData: WrapFunction<typeof _readFormData>;
|
|
98
|
-
export declare const readMultipartFormData: WrapFunction<typeof _readMultipartFormData>;
|
|
99
|
-
type WrappedReadValidatedBody = <T, TEventInput = InferEventInput<'body', H3Event, T>>(...args: Tail<Parameters<typeof _readValidatedBody<T, H3Event, TEventInput>>>) => ReturnType<typeof _readValidatedBody<T, H3Event, TEventInput>>;
|
|
100
|
-
export declare const readValidatedBody: PrependOverload<typeof _readValidatedBody, WrappedReadValidatedBody>;
|
|
101
|
-
export declare const removeResponseHeader: WrapFunction<typeof _removeResponseHeader>;
|
|
102
|
-
export declare const getContext: WrapFunction<typeof _getContext>;
|
|
103
|
-
export declare const setContext: WrapFunction<typeof _setContext>;
|
|
104
|
-
export declare const clearResponseHeaders: WrapFunction<typeof _clearResponseHeaders>;
|
|
105
|
-
export declare const getWebRequest: WrapFunction<typeof _toWebRequest>;
|
|
106
|
-
export type RequestHandler = (ctx: {
|
|
107
|
-
request: Request;
|
|
108
|
-
}) => Promise<Response> | Response;
|
|
109
|
-
export declare function requestHandler(handler: RequestHandler): RequestHandler;
|